- Modified the static type annotation in the class union spec to create a new test case: AvroClassUnionIO.write should continue to work when the supplied value's static type is a parent type of a member of the union, as is the case when union types arise in any nested structures like records, maps, arrays, etc.
- Added new reflection logic to AvroClassUnionIO.write to address the issue.  A subtype relationship is established using runtime reflection information instead of exclusively relying on static TypeTags.
- Modified the version string in the build definition.
- Removed an unnecessary import from AvroType.scala.
- Modified the reflection logic in AvroClassUnionIO.asGeneric to mirror that of AvroClassUnionIO.write.
- Added subproject dependencies from the top-level project, so that clients can simply declare 'scalavro' to mean all sub-artifacts.
- Specified an explicit SBT version to build with (0.12.4)
- Modified the build definition to fork the JVM when running tests.
- Modified the build definition for the `io` sub-project to keep up with the latest stable release of Avro (1.7.4 => 1.7.5).
- Added an overloaded definition for AvroTypeIO.write to allow subclasses to share BinaryEncoder instances.
- Updated write methods in collection types (AvroArrayIO, AvroMapIO, AvroSetIO) to use the more low-level encoder API.
- Updated the union resolution logic in AvroBareUnionIO and AvroClassUnionIO for compatibility with aliased types (Java primitives, etc)
- Eliminated the `io` subproject (moved all classes into `core`)
- Removed the `io` method on the AvroTypeIO type, added a lazy `io` value to the AvroType type.
- Moved conversions from AvroType to AvroTypeIO from AvroTypeIO.Implicits to AvroTypeIO, got rid of the inner Implicits object.
- Refactored use sites to reflect the above changes.
- Changed version number for 0.4.x merge target
- Fixed a typo in scaladoc for AvroType.io
Merge branch 'refs/heads/class-union-erasure-workaround' into 0.4.x