Added mirror support for Kinect.
Color, Depth, and IR streams are supported.
No performance regression was observed.
Better encapsulation of Windows & NUI dependent stuff related to depth-to-image coordinate conversion within KinectStreamImpl.
* KinectStreamImpl::getNuiSensor() is finally eliminated.
* Other Windows & NUI types are more privately hidden.
* Besides, the image registration performance got a little better!
Sorry for fixing another bug of image registration x cropping combination.
Extended property support for Kinect.
* Supported properties
 * 3D sensing properties: Near Mode, IR Emitter On/Off
 * Non- 3D sensing properties: Camera Elevation, Accelerometer, Audio Array ID
* API header KinectProperties.h is added. This is a sibling of other private property headers
  such as PrimeSense.h, PS1080.h, etc.
  (Suffix "Properties" is included in the file name for more clarity.)
* The first 4 hex digits of these properties are 0xx45e, taken from Microsoft's USB vendor ID.
* NiViewer's toggleCloseRange now supports Kinect using these properties.
* IR emitter on/off is added to NiViewer for both PS1080 and Kinect.
* Design notes
 * I struggled if I should reuse the properties of the same meanings in PS1080.h
   (i.e. XN_STREAM_PROPERTY_CLOSE_RANGE and XN_MODULE_PROPERTY_EMITTER_STATE).
   The confusion was, although PS1080.h seemed to be private for PS1080 Driver,
   it was included and used in Kinect Driver also (e.g. XN_STREAM_PROPERTY_CONST_SHIFT).
   I eventually decided not to reuse them assuming PS1080.h was actually supposed to be
   private, and its use in Kinect Driver was a "hidden hack" to make NiTE work.
   If my reading was wrong, please let me know. I will be more than happy to fix.
 * Passing a bool type value to setProperty for an OniBool type property may fail
   because bool and OniBool are actually different in size (1 byte vs. 4 bytes).
   You can workaround this issue by explicitly specifying the data type like
   setProperty<OniBool>(). For the same reason, you cannot get an OniBool type
   property into a bool type variable.
   (This is confusing and hope we can improve this in the future.)
 * Fixed a bug in XnDeviceModule.cpp that caused a crash when reading
   XN_MODULE_PROPERTY_EMITTER_STATE from a PS1080 device, which I found
   while enhancing NiViewer.
modified implicit narrowing cast to explicit cast

Signed-off-by: Eddie Cohen <eddie.cohen@primesense.com>
More readable IR&Depth resolution match check
NITETWO-329: Sync fixes in PlayerStream
NITETWO-330: Write to log successful context shutdown
Merge branch 'develop' of ssh://git/localhome/GIT/Software/OpenNI2 into develop
Update release notes with prerequisites
Add release notes and change log to the installation
coordinate converted: now also supports depth values in 100 um.
PSLink: Set depth stream default resolution to QQVGA on ARM and QVGA otherwise
PSLink: Remove assertions on HandlePacket errors
Update version to 2.3.0.4.
Make sure FOV is zero if not supported by stream
PSLink.ini - can't set mirror on/off
Merge branch 'test_device' into develop
Merge branch 'pr/n32_tomoto' into develop
Merge branch 'pr/n33_tomoto' into develop

Conflicts:
	Source/Core/OpenNI.vcxproj.filters