Restructure dependencies 

Using git submodules will help make sure that the core client code stays up to date without having to pull the newest version. If you want you can freeze the submodule folder on a specific revision once the core is in a stable state.