Add params argument to load()

Occasionally the API requires us to pass parameters in as query arguments.
So far that's been done by creating the 'url' outside the load() method.
But it's quite easy to do within the load() method.

This also fixes a minor bug in the url forming of Athlete.rides().
Add AuthenticatedAthlete, AuthenticatedRide objects and login() function.

This lets us get an authentication token that we can use to access the
streams part of the API, and get some interesting and useful ride data.