Add a _COLUMNS method to Row.

This lets me retrieve the column names, which is useful when generating
SQL.
do_detail was failing in scalar context.

It was returning the first row instead of the first column of the first
row. (This is from the selectcol_arrayref change.)
As of 5.16 'use 5.x' no longer loads feature.pm.
Add a set of callbacks.

These are primarily for the PL/Perl interface; they would need to be
extended before they became generally useful.
A first stab at a PL/Perl interface.
Add a 'require' txnmode.

This insists that all Irian SQL is executed inside a transaction. This
specifically does *not* include fetching from a cursor, since the whole
point is to be able to do that after the txn has closed.
Allow a txnmode of require => warn.

This lets me find the places where I'm being naughty without breaking
anything.
Add a Template::Iterator for Cursor.

Cursor::TT2 is a subclass of Template::Iterator which iterates over a
Cursor. This lets me do [% FOR r IN cursor %] in a template without
having to prefetch all the rows.

This implementation is rather minimal. I suspect I will never be able to
get ->size to work, given that even the DB doesn't know how many rows it
will be returning until it's returned them all, but the other methods
could be implemented with some client-side counters. I'm not sure
whether they belong here or in Cursor. (Probably: count and last belong
in Cursor, assuming last can be implemented at all; possibly also prev,
though this will make the buffering a bit more complicated. The rest
belong here.)

(I suppose I could implement size using a scrollable cursor and MOVE
ALL; MOVE FIRST; to count the rows. This would probably defeat some of
the point of using a cursor in the first place, but at least the
calculated rows would stay in the database rather than being sent over.)