Create Peers collection and encapsulate options

Re-factor Peer object to use hard-coded connection options be default,
but allow these options to be overridden at instantiation or invocation.
Introduce targeted calling

This is a "first pass" implementation and needs heavy refactoring.