Add cast() and column()

As discussed in #6 this PR adds `cast()` and `column()` methods to the query object.

These are quite powerful and can save a lot of boilerplate code, particularly when marshalling results into custom classes. See the added workflow test for details.