Mocking is_supported() in test_repository_info

The test_repository_info unit test for Perforce only passes if 'p4 help' can
run successfully (ie, perforce is both present and properly configured). This
is obviously inappropriate for a unit test.

Reviewed at https://reviews.reviewboard.org/r/4249/
Allow non-existant parent_branch option.

Not every command accepts a parent branch on the command line, but some of the
code for git-svn assumed that it was present. Guard with a hasattr.

Adapted from code at https://reviews.reviewboard.org/r/4241/
Go back to getattr.

The original change at https://reviews.reviewboard.org/r/4241/ used getattr,
and I (David) changed it to hasattr because I'm dumb. Trivial update.
Fix Plastic's usage of self._options.

When the plastic client is creating a diff for a branch, it tries to set the
'branch' field in the options object so that it will get set properly in the
review request. This broke when we refactored the command-line options to be
able to have different options for each rbt command.

Addresses bug 3044
Reviewed at https://reviews.reviewboard.org/r/4395/
Display more detailed errors for HTTP 400.

HTTP 400 errors were not very informative. It was unclear what was
broken and why.

The error output now contains all the field errors, making it more clear
what's wrong.

Reviewed at https://reviews.reviewboard.org/r/4340/