Update the file structure doc
DocBlock update
Update to a repository pattern

This is a huge change and will require a ton of testing and even more
documentation for 3rd party devs.
Update some file names