WinRT Native C++ support

Add ENABLE_WINRT_MODE_NATIVE to disable C++/CX extensions while gracefully defaulting to the old behavior of enabling them through the linker /ZW flag.  It is mutually exclusive of the dominant ENABLE_WINRT_MODE.  Both WINRT options set HAVE_WINRT but the HAVE_WINRT_CX is set accordingly.  This helps allow for various static build options.
Update cap_msmf.cpp

Add support for WinRT in the MF capture framework by removing the disallowed calls to enumerate devices and create a sample grabber sink and adding framework for the MediaCapture interface and a custom sink which interfaces with the sample grabber callback interface.  The change requires discussion for making it completely functional as redundancy is required given that if the source is a video file, the old code pathways must be used.  Otherwise all IMFMediaSession, IMFMediaSource, and IMFActivate code must use a MediaCapture code path and all sink code must use the CMediaSink custom sink.

Support for the custom sink is extended not for compatibility as Windows Vista client is a minimum regardless, but because it offers more flexibility, could be faster and is able to be used as an optionally different code path during sink creation based on a future configuration parameter.
Update cap_msmf.cpp

Cleaned up interfacing by eliminating all useless classes for WinRT while beginning the API wrapper class and splitting the ImageGrabber into appropriate base class and derived classes as mentioned.

Finishing off the API wrapper, and full C++/CX support to come except on the IMediaExtension class definition where it is not possible.