Merge emacsclient face improvements from 'ahyatt/master', add some of my own

* Remove solarized-degrade (from ahyatt)
* New function solarized-face-for-index (from ahyatt)
* New function solariezd-flip (from ahyatt)
* New function solarized-faces (from ahyatt)
  * Vary color for different terms in face specs only (from ahyatt)
  * Reverse light/dark logic to match upstream
  * Add support for 8-color terms
  * Support solarized-broken-srgb
* solarized-color-definitions: Start with faces from upstream and apply ahyatt's changes:
  * Replace light case with generic URL in documentation
  * Consolidate let-bound lists with let* to reduce indentation
  * Don't let-bind yellow and other colors
  * Use default and cursor faces instead of having separate list of attributes to set them
  * Add bright-bold, opt-under, back
  * Base faces are symbols, not let-bound variables
  * Change ((t (spec))) to just (spec) throughout
* No attempt has been made to support the solarized-contrast high case due to lack of time.  Perhaps a 6th column in
  solarized-colors would be a better approach than rotatef on existing colors.
* Reimplement the effect of the low-color terminal background fix
  * New option 'solarized-terminal-themed' controls whether the terminal has been themed with Solarized.  In this
    scenario, we do not set the background color.
  * Pass fg and bg colors to solarized-face-for-index and let it use nil if the new option is enabled and we see one of
    those colors in a foreground/background of face spec.
  * If fg and bg are not passed, assume we are making a face for use by a GUI frame.
  * On terminals that are solarized-themed, use unspecified-bg for backgrounds and unspecified-fg for foregrounds.
    This fixes an issue where the background could stay at a color of a previous theme, instead of going back to the
    terminal's background color.
* Pass background-mode in variables list.
* Use unspecified-fg for highlight foreground, fixing look on terminals.