Move all object files into their respective package directories

The top-level of the project will hold the `main` package and all
subdirectories will hold the different aspects of the project as
necessary.

Additionally, they can all be tested as singular components (as
they've been written) rather than as one big unit.

The full integration tests will now live as part of the main package
at the top-level.