* Add default error handling to the setopt class of functions
  * Add an enum to represent the various options that are available
  * Make the primitive value setopt methods module-private (removes some ugliness)

Still need to do the following:
  * Modify the docs to be up-to-date
  * Figure out what to do about the setopt_callback interface (there's no way to parametrise enum values by type)