Various overhauling.

- Naming and code-style changes.

- Starting/adding unit test infrastructure.

- In process of taking callbacks out of API.  E.g. instead of defining
  a "print handler callback", one attaches a "print queue" to an
  endpoint and retrieves messages at their discretion.  Logging, events,
  and data store requests will use a similar pattern.  Reading from
  these types of queues may be integrated with select, poll, etc.

- Add method for blocking until endpoint peering has completed a
  "handshake", the initial peering process in which endpoints exchange
  subscribed topics.  Works the same for both local and remote peerings.