Medley: Cleanup, better Config, various

@tdfischer, @scottschurr

```
// Example of new API for getting config settings:
// This goes in the class implementing the logic instead of
// being all grouped in Application.cpp
//
    auto const& section = getConfig()["overlay"];
    setup_.test_client = get <unsigned> (section, "test_client") != 0;
    setup_.autoconnect = get <unsigned> (section, "autoconnect") != 0;
    auto const& superpeer = get <std::string> (section, "superpeer");
    if (superpeer == "never")
        setup_.superpeer = Superpeer::superpeerNever;
    else if (superpeer == "always")
        setup_.superpeer = Superpeer::superpeerAlways;
    else
        setup_.superpeer = Superpeer::superpeerAuto;

// Corresponding entries in .cfg
[overlay]
test_client = 1
autoconnect = 1
superpeer = never
```
Is it possible to easily compute a reserve() for the returned string?  I looked over the algorithm.  It looks like setting reserve should be possible, but the exact computation didn't leap to mind.  Just a thought.