Expose query info declaratively

This is an alternative approach to achieving the same goal as #201.

The goal of #201 is to provided an application with the meta data it requires to auto-bind a struct to an `[]interface{}` without having to involve the core library in the binding mechanism.

This pull request takes a more declarative approach by using a callback to generate the `[]interface{}` that will be used in conjunction with the column type information to marshall the query appropriately.

The advantage of the callback approach is that the application can remain unaware of the state of the underlying statement cache and node affinity in general will remain a concern of the driver and not the app.