Add support for request tracing

Pass :trace => true to #execute to request tracing, traces are automatically loaded for responses with the tracing flag set.
Rewrite the trace API to load the trace only on request

Traces aren't guaranteed to be completely written when the response is returned to the client. Instead of always loading the trace (which most of the time would result in an incomplete trace being loaded), only load it on request.

The QueryResult#trace method now loads the trace (and raises an IncompleteTraceError if it detects the trace to be incomplete -- i.e. missing the duration field).

I couldn't find a way to make the API seamlessly work synchronously and asynchronously, so currently this feature is only available in the non-public asynchronous API.
Update docs for request tracing

[ci skip]
Move TraceLoader to its own file
Scale down the tracing support

Instead of full trace loading support QueryResult will have #trace_id that returns the trace ID, and the loading of the trace is up to the application. cql-rb is primarily a low level driver, and this felt like it was too much high level Cassandra management logic.