finalized changes to ConstrainedDataStream

Broke the platform specific code out into its own file, added logic to
pick an apropriate API based on Ogre's platform detection code.