Stricter type conversions

A String representation of a value can be converted to a proper runtime
representation using ParameterUtil#parse(DataType, String) method.
A proper runtime representation of a value can be converted to some
other proper runtime representation (assuming the requested conversion
is an implicit cast) using ParameterUtil#cast(DataType, Object) method.
However, neither of these methods should be accessed directly. In most
cases, application developers should rely on
ParameterUtil#parseOrCast(DataType, Object) method instead.