Added some skeleton definitions for job class.
Put some skeleton code definitions for Job and MiningJob.
Fleshed out the MiningJob class. Made asset loading polymorphic again so a generic loader can be used.
When tiles are selected and the ‘m’ key is pressed than a MiningJob is created for the selected tiles. The tiles currently turn blue.
Fixed issue with GameTile textures not changing due to a static variable in FileAssetLoader. Moved the TextureDef/ShaderDef setup code to a static function to avoid problems caused by Yaml converts returning a temp variable.
Mining job now works properly, corridors now build and are set to the correct frame.
Turned on some LLVM optimisations.
Assets are now cached through the AssetLoaderBase class meaning that assets are shared between components using shared_ptrs.
LLVM needs a const as well as a constexpr to get rid of the pesky deprecated warnings.
Revert "Turned on some LLVM optimisations." due to increased compilation time. Will reenable on release."

This reverts commit 8fae31a44fdd9d4f754b8cab2fe8526b7fb6db86.