In scylladb/scylla#7781 we added possibility to add timeout as part of USING spec.
This patch adds support for it by adding `Timeout` and `TimeoutNamed` functions to builders.
Fixes#194
It allows to write shorter and more straightforward code.
Instead writing:
```
session.Query(qb.Select("cluster").Columns("id").ToCql())
```
you can write:
```
qb.Select("cluster").Columns("id").Query(session)
```
The 'value' interface represents a CQL value for use in a comparison,
update, or intitialization operation. A consistent interface for this
allows us to easily support specifying default-named, custom-named,
literal, and evaluated-function values in all these contexts.
Parameters to Func should probably also be values to support full
composition, but that would be a breaking change because Func's
properties are exposed.
The value interface could itself be exposed if we wanted to allow
clients to pass their own values to SetValue, etc, but for now it is a
package-internal abstraction.
BLA
Builder is not in a position to validate the statement and the effort is
duplicated when the query is build. The checked errors are simple and
do not occur most of the time.