First spike for a HAL reader

Time to start thinking about read/write support, at a minimum for the
Resource/Format conversion, i.e. Yaks::Resource <-> HAL/CJ/etc.

Implement a HAL reader, has a few hacks to improve round-tripping based
on conventions. Also include the official list of IANA rels. This will
be handy in the future for a yaks linter middleware. This also grabs
Yaks::Identifier as a placeholder for smarter identifier support.
Extract the "pipeline with hooks" concept

Also document that "last self link wins" behavior will be deprecated,
and drop the argument in Runner#map, it is redundant.
Full coverage for Pipeline, use the target name in an around hook

Get 100% mutcov on the new pipeline class, in the case of an around hook
we now use the hook's name as the name for the compound step, instead of
the old name.
Add round-trip tests for HAL
Fully qualify Yaks::Reader::Hal, not sure why it causes issues
Add to_h_compact on attributes, returns the attributes that have changed from the defaults
Rename mime_type to media_type across the board, provide some deprecated aliases
Make JSONWrite/Reader callable/procable
Improve the #pp representation of a mapper form
Missing bits after making Yaks::Config immutable
WIP reader for JSON-API