Open new connections based on statistics.

First naive pass, use folsom to collect messaging stats on a per node
basis and open new connections as necessary based on acceleration of
messages over time.

Derive a collection selection mechanism based on the source and
destination pids, as it's required that the same connection be reused
for pairwise pids to ensure causal delivery.

Also, supply an upper bound for open connections.
Merge pull request #11 from cmeiklejohn/feature/csm/connection-management

Open new connections based on statistics.