cache results of query for spash screen names

ResourceGroupManager::listResourceNames returns a list of all resource
accessable which is expensive, this change caches the result of the
processed query so additional splash screen changes are quicker.
Merge remote-tracking branch 'blunted2night/loading_screen_fix'
overrode MyGUI::DataManager::isDataExist

Created a override of MyGUI::DataManager::isDataExist to fix a
performance issue with MyGUI startup. This required moving the
functionality of MyGUI::OgrePlatform into OEngine::GUI::MyGUIManager so
that a new version of the MyGUI::DataManager could be created.
change texture renaming logic to increase performance

ResourceGroupManager::resourceExistsInAnyGroup is slow (at least on
windows) if the tested path does not exist, but is fast if it does (due
to finding it in the index). This change tries the '.dds' version of the
name first, and reverts to the original if the '.dds' version was not
found.
fixed error in cmake when disabling esmtool
moved ConstrainedDataStream into its own file

moved the ConstrainedDataStream into its own source file and changed
BSAFile to use it though the exposed factory function. This is in
preperation foreimplementing it based on feedback from profiling that
(at least on windows) the C++ iostreams library is quite slow.
increased performance of ConstrainedDataStream

Reimplemented ConstrainedDataStream to use low-level IO calls and a
custom buffering scheme to avoid using C++ iostreams.
changed EMSLoader to use ConstrainedDataStream

Changed the EMSLoader class to use the ConstrainedDataStream so that
future changes may benifit from its increased performance.
post merge fix
Merge remote-tracking branch 'blunted2night/mygui_fix'
Merge remote-tracking branch 'blunted2night/texname_fix'
Merge remote-tracking branch 'blunted2night/cmake_no_esmtool_fix'