Create prototypical `Options` object.

Instead of creating a JSON object, `parse` will now create a
prototypical object. The prototypical object has the parsed parameters
as a property of the object. It has member functions that will invoke
the usage message or error messages by raising an exception that the
parser is expected catch, instead of following a message naming
convention.

The use of strings to indicate a message type in the message naming
convention did not bother me. It was going to require a special
exception class to create parameterized messages, however. A member
function is easier to document than a special `Error` sub-class.

Closes #32.
Merge branch `prototypical` into `master`.