Add references to resources.

This change exposes `hasOne` and `hasSome` references on resources, such as
an EC2 `instance.subnet` or `instance.vpc`. Both the subnet and VPC are
resource instances that are created from data available on the instance. In
this case via the `subnet_id` and `vpc_id` data members. Allows code
like the following:

```python
import boto3

ec2 = boto3.resource('ec2')
for instance in ec2.instances.all():
    print(instance.vpc.tags)
```

Updates the resource data model, updates and adds tests.

cc @jamesls, @kyleknap