adding master_contact() method in the config object
adding update keyword so we can just query the value when needed
don't need an envvar for this, fix user agent format to follow RFC2616
creating request_from_master() function to check and see if a request appears to come from the master
remove unused import
adding config.master_contact to endpoints
removing unused class
fixing user agent in tests for http client
minor syntax change
Start off with the UNIX epoch rather than None so it's always a datetime object.  In reality we're going to be setting last-master-contact shortly after startup anyway.  This also keeps the tests from breaking too.
adding new key to tests
rename master_contact -> master_contacted for a little better clarity
master_contacted should only be called once we have the agent id
...and it should happen before starting the scheduled tasks
adding rate_limited function and RateLimitedRequest class so we can rate limit requests to urls (such as announcements to the master, ram updates, etc)
adding TODO
merging from master
Merge branch 'master' into master_reannounce
merge orgin/master
merging origin/master