Switch to broker-based networking backend

This patch removes the classes `peer` and `peer_acceptor` and replaces both
with a new broker based on the Binary Actor System Protocol (BASP). The
middleman no longer knows about peers, it only knows about brokers. The
peer-based design predates brokers and doesn't make much sense now that brokers
are available. A broker-based design is much cleaner, removes duplicate (or at
least semantically equal) code and further reduces the complexity of the
middleman. Additionally, it makes "peers" first class citizens, because brokers
are actors. This makes communicating with peers much more simple and
straightforward. Furthermore, the new BASP-based backend is much better
documented, easier to maintain, and more extensible.

This patch also replaces the old and clumsy `detail::raw_access` with
`actor_cast`.