Fix #96 many implicit conversions to/from String were broken.

Changed ``SQLTypeUtils.coerceToString()`` to accept a ``Type`` parameter and use the type-appropriate ``TextCodec`` if available.  Changed ``SQLTypeUtils.coerce()`` to handle coercions from ``String`` to the required type if the text parameter format is supported for that type using the type-appropriate ``TextCodec``.   Changed ``SQLTypeUtils.coerceToBytes()`` to use type-appropriate ``TextCodec`` if the source value is a String and a codec exists.

Added test case to cover original issue, plus additional tests that uncovered further conversion issues.  All suite tests passing.

Ok I see that.  Ultimately though the fact they we are relying on a specific order seems like it might be incorrect.