Switch `resource.meta` to be an object.

This changes the behavior of the meta object in a **backward-incompatible**
way. It goes from being a dict to an instance of a `ResourceMeta` class.
Example:

```python
import boto3

s3 = boto3.resource('s3')

# The old way
s3.meta['service_name']
s3.meta['client']

# The new way
s3.meta.service_name
s3.meta.client
```

cc @jamesls, @kyleknap 
This will require updating the eq everytime we add a new value to this class.  Can we use something like `__dict__` instead? Or anything else to avoid having to update this method.