Change terminology: attribute -> property.

The JSON HAL Internet Draft usually refers to dictionary items as
properties, so dougrain should too.
Make a single link and document iterable.

When getting the links and embedded documents for a relationship type, there may be a single object or a list of objects. To save testing which is true, Link and Document objects are iterators that yield themselves exactly once.
Change CURIE token to "rel".

For some unknown reason, we were using "relation", which does not conform with draft-kelly-json-hal-03.
De-duplicate rels with same effective URI.