Refactor + Serialization
Serialization WIP
Squashed 'STI/' content from commit 43e92b1

git-subtree-dir: STI
git-subtree-split: 43e92b10e7c5fff21ef4b484e81c25433a76fedd
Merge commit 'b3580e632d0f4a26c23a79e34dac7a1037bc0449' as 'STI'
Repo organisation and CMake files