commands: Implemented Command
commands: Created Option struct
commands: Request struct
commands: Wrote tests for command option validation
commands: Check for option name collisions
commands: Added tests for Command.Register
commands: Created a list of global options (for options owned by commands package)
commands: Use global options when registering and calling commands
commands: Added global options list to command tests
commands: Added Response
commands: Updated Command to use Response for output rather than (interface{}, error)
commands: Updated Command tests for new Response API
commands: Added basic methods to Request
commands: Added an Error struct for creating marshallable errors
commands: Added marshalling to Response
commands: Wrote tests for Response marshalling
commands: Added Request#SetOption so we can set options with multiple names
commands: Updated Response test to use safer option setting
commands: Added error marshalling to Response
commands: Added test for Response error marshalling