Major code reorganization

Not refactoring per se, but our codebase was in huge need of better organization and file naming conventions.

More refactoring/moving to come, but this is a good start.

I also took the liberty of bringing our npm dependencies up to date