**DO NOT MERGE** WIP: Objectify The Shell Windows Implementation

This pull request is for evaluation and testing purposes only.

1. A lightweight windowing object framework has been implemented to make into darkness easier
2. The shell main window has been moved into the cef_main_window class 
3. Global variables are cleaned up and normalized (in most places -- the old nomenclature still exists in various files and will be cleaned up in a subsequent pull request)
4. Code is more modular now
5. No more giant switch statement in cef_client_win.cpp

This is still a Work In Progress but wanted to get a pull request up for the refactoring work so folks can see the approach and play with it.  There is a little more cleanup to do and this code hasn't been fully tested so if you run across something that is broken let me know and I will fix it.

Also some of the changes may impact the Mac and, as such, changes to the Mac build that need to be made haven't yet to be identified so don't worry about Mac builds not running as they will get fixed before the final merge.

@gruehle had mentioned that we should keep the window class implementations in cef_client_win.cpp so look at it and decide if you think it will be easier or more difficult if they are spread out across the files. There are some brackets specific things which are in their own files and that might actually make it easier.  The giant switch statement is really the only thing that will need to be merged in by hand.