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')

s3.meta['service_name']
s3.meta['client']

s3.meta.service_name
s3.meta.client
```
Address review feedback
Add coverage for repr(meta)
Merge pull request #45 from boto/meta-object

Switch `resource.meta` to be an object.