refactoring: split things out into a bunch more packages+modules

Refactors the god-module into many smaller modules.
The only one I'm still not entirely happy about is `porcelain.retrieval` (see `FIX ME` comments in that file).

CC: @rajivm @dlindquist @kainswor for code review