Source split

This is the second phase of Ruben's work on splitting headers and sources so they contain only 1 class per file. It has been tested on Windows, Mac, and Linux Mint.