SSTableLoader: Add blob udt codes for prepared statements
SSTableLoader: Add blob udt codes for prepared statements

Fixes #57

Cassandra drivers assume incoming bound data for UDT is
an actual object looking like the type. In our case, we will
not have neither time to unmarchal/marshal, or even the classes
in classpath to do so.

We instead get UDT data as its frozen representation in sstable. Which
is how the wire should look as well.

When using non-prepared statements, this works perfectly, because
there the actual CQL column type is ignored, and only the java type
is user for serialization. For prepared statements however, it gets
stricter, and bytebuffer data will not fly.
To get around this, we simply register a codec for every user type
that treats the type as blobs.

BUT that does not solve everything. Just to make things super fun,
the types we get from the cluster query and use in loadUserTypes
are not always 100% equal to those that prepared statements will
infer for columns. So we might need to register additional types
on the fly as we generate statements. See sendPrepared

Message-Id: <5cd1b3783789753628483118cd525fc8c07c9fc5@scylladb.com>

scylladb/scylla-tools-java,scylladb/scylla-tools-java,scylladb/scylla-tools-java,scylladb/scylla-tools-java