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 
You're right. It's easier like this:

```python
start = len(service_name)
return max([i[start + 1:start + 11] for i in filtered])
```

I'll add more of a comment about the hard-coded numbers.