Added a static helper method Union.combine which takes two type tags as arguments: a tag describing a conjuntion of type negations, and a tag for a type to add to the conjunction before negation, resulting in a union type with the combination of member types.  Taken together with the newly exposed underlyingConjunctionTag on Union instances, this allows for building up unions one TypeTag at a time.  This functionality is required to construct AvroUnion objects for Either, Option, and later on, for supertypes of case classes.  Added tests for AvroUnion resolution via Either and Option, added tests for c.g.scalavro.util.Union and friends.