ConversionUtilsTest: add convert test
ConversionUtils: fix bug in getComponentClass

It is not safe to cast directly to Class<?> because
getGenericComponentType() may return a non-Class Type. So we filter
through the getClass(Type) method to ensure the result is a Class.

We probably want to add a getComponentType(Type) method that returns a
Type, and deprecate getComponentClass(Type) in favor of downstream
callers chaining getClass(getComponentType(type)) explicitly.
ConversionUtilsTest: add getClass test
ConversionUtilsTest: add getComponentClass test
ConversionUtils: report casting from null as OK
ConversionUtils: make canConvert match convert

Specifically, the convert method tried harder than canConvert did to
find a compatible single-argument constructor. The two methods have
now been brought into sync with the same constructor detection logic.
ConversionUtilsTest: add subclassing cases

This test actually proves that ConversionUtils can be very dangerous
when it comes to generically typed objects such as Collections...
ConversionUtils#canConvert: fix numeric conversion

The convert method has case logic to convert between primitive (and
wrapped-primitive) numeric types. The canConvert method has now been
brought into sync to report correctly on this capability.
ConversionUtils: fix bug in convert(Object, Type)
ConversionUtils: note potential problem code areas