Add test cases for type unions

Verify that the simplest of type union cases: property or none: are handled
by the default visitor.  Explore how type unions affect type visiting, and
add a warning.
Avoid emitting {'values':[...]} on JsonRecordList classes

JsonRecordList classes have an extra extraneous property,
unknown_json_keys, which somewhat ironically is impossible to get anything
into by default, and is not even visited without setting ``extraneous``.
However this default reducer was making the mapped result more complex than
it would typically need to be.  Instead, decide based on whether any of
those properties are filtered or not whether to use the complex form.
VisitorPattern deserves a README entry at least :)
Release engineering for 0.5.0

Let's try and put the README into the long description :)