A Great Refactoring - Part I

Does not build, this is an archival commit to avoid losing work during
this large process.

Begin refactoring logic into DateStore, Transport, Protocol, and
Application units. Any of which will be pluggable.