Fix how custom themes handle faces, so the multi-tty/multi-frame case works.
* lisp/custom.el (custom-push-theme): Don't record faces in `changed'
theme; this doesn't work correctly for per-frame face settings.
(disable-theme): Use face-set-after-frame-default to reset faces.
(custom--frame-color-default): New function.
* lisp/frame.el (frame-background-mode, frame-set-background-mode):
Moved from faces.el.
(frame-default-terminal-background): New function.
* src/xfaces.c (Finternal_merge_in_global_face): Modify the foreground
and background color parameters if they have been changed.