Switch to Botocore data loader.

This pull request changes Boto 3 to use the Botocore data loader for loading
resource JSON description files instead of the custom loading logic that was
in place. As a result, a couple of things have changed:

* Removed all JSON loading code from Boto 3
* Removed `ResourceFactory.create_class` in favor of `load_from_definition`
* Added Boto 3 resource data path to Botocore's loader
* Added functionality to get the latest resource version
* Implemented `Session.get_available_resources`
* Updated and removed some tests
* Updated docs

Unfortunately, Botocore requires a very specific folder structure, and at the
moment Boto 3 is not using it. Because of this I wrote custom logic to find
resource JSON files and find the latest version, some of which should be
migrated into Botocore in the near future.

cc @jamesls, @kyleknap 
sorry just noticed this now, but I'm not really a fan of putting their access key as part of the repr of an object.  We try pretty hard to avoid printing it where possible.  It's not technically the secret part of the credential, but it still feels wrong to be adding it to an object's repr.