Reorganized and regrouped directories

Both the virtual directories in the .sln and the literal directory
structure has been overhauled and simplified.

Made a few type accessibility changes to facilitate running in a service
oriented manner.