Simplified wrapper code.

It seemed like a good idea to have a switch statement handle every
documented return code in the wrapper, but it's obvious that this is
just pointless boilerplate code.

Instead we now just pass the return code from Jet functions and an
origin string to handle_errors() which throws an exception when it sees
a failure code. In addition, warning codes are now handled by calling an
optional warning handler.
Implemented all functions up to  jet::enumerate_columns.