Server/Client Refactor

The first great refactor
Split into core, client, and server