Finish the code refactoring.  Did not really make any radical changes, factored out some enum duplication, created control class in place of macros.  Still need to add documentation.
Merge with commit 91f262bc87e6df3b895c78af649d76403cf6c5b9
Merge with commit 2df2d3614e1658489b42d9000c2af17ffe43a2a1
Manually rebasing D3DProxyDevice with master in prep for merge
Merge remote-tracking branch 'origin'