Proper conversion to/from JS when issuing queries to Cassandra

Until now, values were only sporadically converted between rb-cassandra and Cassandra types. This PR resolves this, and systematically converts values from JS to Cassandra when issuing queries, and back to JS after fetching the result rows. It also introduces conversion schemes for set values whose underlying types need conversion (such as set<varint>, set<josn>, etc.).

This PR aims at resolving [T84900](https://phabricator.wikimedia.org/T84900)
Ah, drag.  What if we create a new data type that provides two (possibly lazy) fields that are unambiguously converted?

Roughly:

```javascript
{
  function jsValue() { if (_jsValue === null) { /* deserialize */ } ; return _jsValue; }
  function cassandraValue() { if (_cassandraValue === null) { /* serialize */ } ; return _cassandraValue; }
}
```

We can produce an instance of the above (1) when processing incoming request data and (2) when processing query results.

Thoughts?