Collections are always safe

Collections know their valuetype, so always add the safe trait.  Add a
facility for types to hook into the conditional safe-ness implemented in
the property metaclass.  Previously they would only get Safe if the
declaration included a type definition (isa, check, required).
Visitor: accept 'filter' as well as 'visit_filter'

It's kind of awkward using 'visit_filter' for 'cast' operations; allow the
neutral synonym 'filter'.
Visitor: permit 'literal' field selectors as filters

Carry across the input relaxation from diff: if the filter is a tuple, then
use it to make a MultiFieldSelector.
Visitor: grok safely for friendlier exceptions

Previously, the code would "duck type" (that's what just carrying on and
hoping the input responds to whatever methods you expect it to, right?).
This could lead to some confusing errors when bad input was given, so let's
go ahead and add some type checks here with friendlier exceptions telling
you the path into the input the bad values were found.
Changelog 0.5.5 release