Tracking... for real!

Recurrently probes remote repositories
 - List references
 - Fetch changes
 - Keep track in refs/radar/{remote_name}/{branch_name}

Basic integration with current notficiation infrastructure
 - Configuration parsing

Successfully tested with

```
{
    "poll_interval": 5,

    "clients": [
        {
            "type": "repository",
            "path": "D:/Radar.TestRepo",
            "forks": [
                {
                    "name": "arthurschreiber",
                    "url": "https://github.com/arthurschreiber/radar.testrepo.git",
                },
                {
                    "name": "nulltoken",
                    "url": "https://github.com/nulltoken/radar.testrepo.git",
                },
                {
                    "name": "carlosmn",
                    "url": "https://github.com/carlosmn/radar.testrepo.git",
                },
            ],
            "snoozed": [
                "https://github.com/trollface/radar.testrepo.git",
            ]
        },

    ],

    "notifications": [
        { "type": "console" },
    ]
}
```
I wasn't expecting a client to do its own polling on the side.  Why would we not do this in the normal event loop in the `RetrieveEvents` method?  The other option is to drop the `poll_interval` and have clients do their own polling, and just always query them.  But this seems like we're moving in the direction of having two event loops, one at the top level and one in this client, and I'd like to avoid that.