Move SceneInteract class out from core to its own SceneInteract Tundra module instead. Remove IRenderer::Raycast.
Introducing TundraCore: Asset, Audio, Console, Framework, Input, Scene, and Ui static libraries now combined into one dynamic library, TundraCore. Alternatively, TundraCore can be built as a single static library by setting TUDRACORE_SHARED to 0 in the root CMakeLists.txt. As the result, depending on the case, the resulting plugin DLL's size can be even three times smaller compared to the non-TundraCore approach. Comparison done using RelWithDebInfo build configuration.

The TundraCore source folder has the original libraries' sources in their own subdirectories. Use UseTundraCore() CMake macro
to to include all of the TundraCore subdirectories to your project in order to include the files using the shorter include path
(f.ex. "Ui/UiAPI.h" vs. "UiApi.h"). Probably ideally this macro should not be needed at all, and all of the folder structure
should be included automatically.

Note: For now the Color class resides in Math library due to problematic nature of compile-time MATH_OGRE_INTEROP feature
which creates dependency to Ogre and we don't want TundraCore to have Ogre dependency. Also note that, for now at least, Math, kNet and Qt needs to be linked explicitly to the project in most cases.

Also contains build fixes in SceneWidgetComponents and VlcPlugin related to the SceneInteract refactoring.
Remove unneeded LinkTundraCore CMake macro.
Move EC_Billboard and EC_ParticleSystem from being optional libraries into being part of OgreRenderingModule. Billboards and particle systems are often used core Ogre functionality so no need to have it as an optional feature.
Move Sky, Fog, and EnvironmentLight ECs from EnvironmentModule to OgreRenderingModule as these components handle core Ogre SceneManager functionality.
Rename poorly named QtUtils.h & cpp files to FileUtils.h & cpp, and remove the QtUtils namespace.
ConsoleAPI::LogDebug: remove #ifdef _DEBUG - log level is set at runtime.
Initial Crunch texture support implementation. TODO: Automated deps and using InternalName() inside TextureAsset in all places where Ogre is called.
CRN: Use internal name also in operationCompleted(). Fix docs to be clearer.
CRN: Implement crunch SVN for windows fullbuild. Implement cmake macros in OgreRenderingModule to find crunch, untested on linux/osx. Cover edge case where .crn cache file is in place but decompressed .dds is not, meaning the user manually deleted it from cache dir. Make OgreMaterialAsset ask the InternalName from texture asset so we dont have to upkeep the code in multiple places. Expose some useful functions to scripting as public slots.
CRN: Fix rest of the places that could cause problems to NameInternal().
CRN: Make crunch library optional, we dont yet know how feasible the lib is on mac/linux. Until we confirm and integrate the build steps to linux/mac build scripts make Tundra build without crunch. If not present .crn textures will simply fails with message that crn support is disabled.
Crunch: Remove the lib dependency, use as header only. Headers shipped in ogre rendering module like libsquish. We can adjust these headers in our repo if there are mac/linux issues, until the crunch repo supports them fully.
Crunch: Fix bug when doing synchronous loading, ptr was invalid.
Fix mac build in libcrunch headers
Typo fix in function signature.
Change userID to u32 and cap it to kNet::VLE8_16_32. #471
Changed int to u32 (unsigned int for script accessible signatures) regarding connection IDs. #471
Fix merge conflicts with rex/tundra2 in win .cmd build files.
Replaced AttributeChanged(IAttribute*, AttributeChange::Type) signal with IComponent::AttributesChanged() signature for all components, excluding EC_SkyX and EC_Script because of the signal handling design, EC_Terrain and EC_HoveringText which were already modified, and EC_Sky, EC_Fog, EC_ParticleSystem, EC_Billboard, and EC_EnvironmentLight which will be moved in OgreRenderingModule as discussed in #541