Performed lots of clean up

- moved every type to its own file
- added logical folders and grouped files into folders so they're easier
to find
- moved some internal types to other namespaces as they were in the
wrong namespace
- added some warnings on sqlclient using code in generic classes.