API3 rework

I've reworked things to use API3 and written a few test programs. I still don't have a decent way to test due to the credentials needing to be pushed to travis, so, I wrote a number of small tests that I compared against known results.

I removed quite a bit of the cruft and just used the keys Strava sent back and raise an exception if a key isn't found rather than maintaining a mapping. I have written a small application around this to fetch data and it does get the data as expected. The before/after/page/page_num functionality works and it should mimic everything that it did before.

Some code changes from API1/API2 code will need to be made, but, in the long term, I think the API will be much more maintainable.