Use array for Type->SQLType mapping
Fix bug in int2 encoder
Delay parameter coercion until execution; allows queries such as "SELECT ?" to work as before

• Preparation is delayed until execution or a meta-data request.  At such parameters with unknown types (e.g. "SELECT ?") must have a set.
• Batched PreparedStatements check each set of arguments to ensure the preparation is still valid and re-prepares if necessary.
• Split type mapping into get/set varieties.  This ensures internal object types do not "leak" during getObject calls.
• java.sql.Type.FLOAT now correctly maps to Double
• XML has a distinct codec to ensure it is mapped to SQLXML properly.