Always send user agent header

For https://github.com/theodi/shared/issues/306

This PR makes sure we send a user agent header, as some servers crap out and send a 500 if one isn't present. In the interests of good web citizenship, I've made sure we send our own unique header, rather than faking it and pretending to be a browser.

Under the hood, I've basically added a new class called ODIbot which includes HTTParty, meaning if we ever want to change the user agent header, we only need to do it in one place. 

It also takes care of caching, something which we should have been doing, but wasn't set up properly. I've set the cache to expire after 5 minutes, working on the assumption that if people spot something is wrong on their server, it will take about that time to fix.