Ignores @attributes instance variable from Resource#inspect output

Its distracting and sort of "private"
Adds support for auto-instantiation of embedded resources

If Frenetic cannot find a matching class to instantiate, an OpenStruct is used
Raises an error when a templated URL is expanded but there are not enough parameters to satisfy the template
Adds URL-based cache namespacing

This prevents multiple Frenetic clients from sharing the same cache
Adds support for Hypermedia link collections

HAL allows a single link type to have multiple values:

    # From http://stateless.co/hal_specification.html
    {
      "_links": {
          "self": { "href": "/orders" },
          "ea:admin": [{
            "href": "/admins/2",
            "title": "Fred"
          }, {
            "href": "/admins/5",
            "title": "Kate"
          }]
        }
    }

This adds support for these "link collections"

Additionally, if a "link collection" returns links with multiple representations:

    {
      "_links": {
          "self": { "href": "/orders" },
          "order": [{
            "href": "/orders/{id}",
            "templated": true
          }, {
            "href": "/orders/{barcode}",
            "templated": true
          }]
        }
    }

Then Frenetic will use the most appropriate link based on the URI template value
that you provide it:

    MyClient::Order.member_url( id:123 )
    > '/orders/123'

    MyClient::Order.member_url( barcode:'0-123-345-1' )
    > '/orders/0-123-345-1'