Pass rack env to transformation steps

Make the env passed in as an option available as a second parameter to
all transformation steps and hooks. This includes the mapper, formatter,
and any custom hooks.

Note that since most custom hooks are defined with procs (blocks), the
arity is not checked, providing backwards compatibility.
Fix the HTML output format, handle null links correctly
Make the runner instance available, add media_type/format getters

Instead of calling yaks in one go, this allows fetching the runner
instance first to see what format Yaks is planning to serve up based on
Accept header, so the correct Content-Type header can be set based on that.
Turn URI objects into strings when primitivizing