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.
Typo fix in function signature.
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
Make Scene::Name a regular function instead of a slot as it's unusable from script because it return const ref. Script can retrieve the name of the using the 'name' property, 'var sceneName = scene.name'.
Add DEPRECATED macro. MSVC only, GCC's equivalent is not usable in same convenient way.
Tweak doc of DEPRECATED macro.
Fix signed/unsigned mismatch warning.
Re: #541 - Utilize IComponent::AttributesChanged for EC_ParticleSystem and EC_Billboard components. EC_Fog left untouched intentionally as it wouldn't gain anything from the refactoring (it's not interested in which attributes have been changed, as it does the same update routine always).
Add functions for both implicit and explicit conversion from Color to float4 in order to enable math-related functionality (lerp et al.) for the Color class easily and without duplicating code.
Fix bunch of C4100 ('identifier' : unreferenced formal parameter) warnings. Note: this warning is currently disabled project-wide but is a valid warning that should be enabled. However, leaving it unenabled  for now as MathGeoLib, kNet and Bullet would spam bunch of these.
C4100 fixing cont'd. Note that an actual bug found thanks to enabling this warning in Entity::GetOrCreateComponent(u32 typeId, AttributeChange::Type change, bool replicated) where the replicated parameter was not passed on. Mark down a TODO for usage of potentially uninitialized local variable in StanHull code.
-Even more C4100 fixing (hard to spot all of these at once from the build output...).
-On a second thought, enable C4100 warning, and fix the ones coming from MathGeoLib and disable the ones coming from Bullet.
In ConfigAPI, clean up duplicate documentation, add couple TODOs and rename misleadingly named HasValue to HasKey (does not break any existing code). Note that the e9e1165dbb19be705ae3193dcc326a44a3c8d4f7 commit accidentally had changes to ConfigAPI even though all the changes were meant to be in this commit only.
DEPRECATED macro implementation that will work on both MSVC and GCC.