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
```
The move constructor and move assignment operator need to call clear() on the rhs list_ and set_.  This should be done for all platforms.  The state of the moved-from list_ and set_ aren't guaranteed by the standard to be empty.