Mark's networking code

As cleaned up by @ediosyncratic using git filter-branch (among other dangerous tools).
Includes several fixups from later in the branch, but I may have missed some.
Compiled locally and passes all unit and acceptance tests.  Let's see how it fares more widely ...

I suspect reviewing the gross diff is easiest, as there are (even after squashing out a few) quite a lot of changes of mind along the way.  Also: 106 commits.
I have been undoing all the things marked as errors. Errors are when state cannot be implemented. A change is not an error, and should normally be completely silent. Only if "-I" is used do I want to see change information in general. If we make this verbose, then we can't separate out change from general commentary.

The levels were designed to be:
Normal - silent for everything that is not an error
Inform - all changes, with "context knowledge"
Verbose - add full context and execution commentary
debug - messages for CFEngine programmers