Return PeerMap by reference.

In accordance with `go vet`, locks should only be returned by reference.
Begin refactor to better encapsulate configuration

This also updates the example_config.json which did not previously work.
Config.Config is now composed of embedded structs of other configs that
can later be used to clearly have a separation of concerns.
Fix missing dir in clone step of install instructs

[ci skip]