Improvements to ScalaObjectMapper

The ScalaObjectMapper trait is now smarter about constructing JavaType objects
from a Manifest, and has the ability to read values into a larger set of
both Scala and Java types with full parameterization.