Derive the collection type from the first item in the collection

Deriving a nice rel for the inside of the collection continues to be a
sticking point. Ideally we don't need to inspect the objects being
serialized, instead the collection gets an :item_mapper from the
association, and can take the type from the item_mapper.

If the collection sits at the top level then things are different. In
that case you could be explicit about the item mapper when calling the
top level call to yaks, but otherwise we need to derive the type at
mapping time from the contents, and this only works when the collection
contains at least one object. So not ideal, but has worked so far.

This adds some extra complexity to the policy, but it brings back the
pre 0.4.3 behavior.
Yard fix, format_class returns a subclass of Yaks::Format, not an instance
Prepare version 0.4.4