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 
Yep, the output should be in a prescribed byte ordering. This is a replacement for `Serializer::add32` or whatever its called, to eliminate the dependence on `Serializer` in this source file.