Levelization: source code structure

This de-tangles dependencies:
* basics/ no longer depends on any other modules
* crypto/ depends only on basics/
* protocol/ depends only on basics/ and crypto/

Reviewers: @scottschurr @mtrippled 
Fixing it here still leaves it goofy in many other places such as `getSHA512Half` (which was copied from Serializer.cpp). I'd prefer that if we're going to change it then we do a thorough treatment in the whole application instead of just in one place. And we would likely want to tweak the interface of `base_uint`. This is beyond the scope of this tidying.