Created BoolArray

Added a new PrimitiveArray implementation for booleans.
Created CharArray

Added a new PrimitiveArray implementation for char types.
Created ObjectArray

Added a new PrimitiveArray implementation for Objects. This is, of
course, a misnomer as Objects are not primitives.

However, it was necessary to create an array type ([]) wrapper, and it
makes sense to reuse the existing PrimitiveArray pattern.

It may make sense to rename PrimitiveArray to something like
"ArrayTypeWrapper", etc... but for now we focus on providing the new
Object wrapping functionality.
Created ArrayUtils class

Added a utility class for converting array types to PrimitiveArray
implementations.

Given an array, this class will determine the correct wrapper to use and
return an instance of that wrapper constructed around the given array.
Merge branch 'create-missing-primitive-arrays'

Adds PrimitiveArray implementations for char, boolean and Object. This allows
complete array type ([]) wrapper coverage.
ClassUtils: factor out Type conversion methods

The ClassUtils type conversion methods (e.g. convert, canConvert, cast,
canCast) are scoped beyond just literal "Class" objects. For example it
would be useful to have these methods that operate on actual "Type"
objects as well.

Thus the current methods were split out to a new class: ConversionUtils.
The old signatures in ClassUtils are marked deprecated and can be
removed when API consumption is updated.
ConversionUtils: add "Type" convert signature

Added a convert method to ConversionUtils that operates on Type objects
instead of just classes.

This allows the conveying of considerably more information about the
object to convert. Previously, it was only possible to convert single,
non-parameterized types.

By using the actual Type object we can now look for collections and
arrays of objects (multi-element containers). If a multi-element object
is detected, its potential value is interpreted as a list of values.
Each is then recursively converted to its appropriate type.

The ClassUtils.setValue method has been updated to use the new
Type-based signature instead of just the Class convert. If the field to
set is a single-element object, the behavior is unchanged.
ArrayUtils: clean up style
Add Mark as primary author of some tests
ConversionUtilsTest: clean up style
ConversionUtilsTest: tweak javadoc style
ClassUtils: remove unused import
ClassUtils: clean up style
ConversionUtils: improve javadoc and comments
ConversionUtils: clean up style
ConversionUtils: eliminate raw type usage
ConversionUtils: remove unnecessary elses
ConversionUtils: simplify array logic
ConversionUtils: use simpler test
ConversionUtils: be consistent with comment style