RB Patch

RB Patch will download a patch based off a specific review request ID
and apply the patch on the local machine.

Reviewed at http://reviews.reviewboard.org/r/3440/
RB diff

RB command that displays a diff in the terminal.

Reviewed at http://reviews.reviewboard.org/r/3429/
RB Close

Allows the user to submit a command 'rb close <rid>' to mark a review
request as either 'discarded' or 'submitted'.

Reviewed at http://reviews.reviewboard.org/r/3595/
RB attach

A command that allows the user to attach a file to a specific review
request.

Args: rb attach <request_id> <path/to/file>
Options: --description (caption), --filename (custom filename)

Reviewed at http://reviews.reviewboard.org/r/3599/
RB Publish

A command that allows the user to turn a draft review request to a
published review request.

Reviewed at http://reviews.reviewboard.org/r/3627/
Remove unused files.

This removes a number of unused command and api files which have been
sitting around. It's possible some of the logic present in the command
files could be useful in the future, but the implementation details
would need to be changed drastically.
Add Steven MacLeod and John Sintal to AUTHORS
Use "rbt" instead of "rb" for base command.

The base command "rb" conflicted with another package, so to avoid
problems we will now use "rbt" instead. I refactored things a bit to
make changing this name easier in the future.
Fix commands style issues
Refactor patch command variables

The term patch_id was being used for what really should be referred to
as the diff revision. This makes some of the variable names more
clear, and adds documentation of some assumptions.
Change command author to The Review Board Project

A number of the commands built as part of the core rbtools were using
individual authors. In order to be clear these commands are developed
as part of the core project, the author has been changed.
Add missing imports and fix small bug

A couple imports were missing, and a object attribute was being
accessed without "self." prepended.
Introduce a new class for defining options

A new 'Option' has been added which allows specifying a 'config_key'.
The provided 'config_key' will be used to retrieve a default value for
the option from the configuration files. This will take precedence
over the value provided for 'default'. This should also allow us to
provide the corresponding config file option when displaying help.

Additionally, all of the current commands have been switched over to
the new method for defining options, and the parsing code has been
changed accordingly.
Add proper usage text to commands

Commands may now define 'args' which will be output with usage text to
show the arguments a command takes. Commands now have a 'usage' method
which will return the usage text. While this can be overridden, the
base class 'usage' should generally suffice.
Add checking for number of command args

The number of args provided to the command is now checked against the
number the command accepts (based on the signature of its main
method). Usage text and an error are now displayed if the number of
arguments provided is invalid.
Add initial command help

'rbt help' can now be called to display a list of commands and usage
text. 'rbt help <command>' will output the help specific to a command
including the options it takes. Formatting and the  extensiveness of
help for each command will be improved in the future, but this is a
good start.
Merge branch 'rbt-commands' into api