Basic options support for caret color

So much work needed here but have a really basic implementation of
supporting the block caret color on the options page.  Need to really
refactor the code and add support for the other colors.  This is a good
point to start from
Renamed Constants -> VimConstants

The name "Constants" was causing ambiguity errors in the code base.
Renamed to VimConstants to remove that ambiguity
Multiple colors supported

Everything is basically working except the encoding and decoding of
color values.  The code today assumes they are always RGB but they can
be other values as well.  Need to work out the other values
More intelligent color loading

Change the color loading code to use IVsFontAndColorUtilities.  This
allows for proper decoding of the COLORREF value.  Still some issues
with getting CT_COLORINDEX correctly decoding.  Waiting to hear back
from VS team on how that should work
Fix CT_COLORINDEX handling
Added all the colors in

Right now only loading foreground, in some cases like toast margin we
care about background.  May want to eventually limit the colors we
support
Color info more rigorous

1. The option page will no longer unconditionally save the translated
Color value.  Instead it will now only save values which have actually
changed.

2. Failing to load one color affects that color only.  All other colors
can still be loaded and saved even with the single failure
Use FCSF_NOAUTOCOLORS flag

This removes the possibility of returning all of the CT_ values that
can't be easily dealt with
Use a more declaritive system
Fixed marker colors so they are customizable
Cleaned up the color definitions

All are now uniformly defined and properly disable the customization of
the foreground / background they don't support
Removed unnecessary colors
Merge remote-tracking branch 'origin/master' into fixes-colors
Merge pull request #1359 from jaredpar/fixes-colors

Fixes colors