Add -X support for the svn SCMClient.

The svn backend now supports excluding files through a
filterdiff-esque method: `SVNClient._filter_diff`. This
method looks through the output of `svn diff` for lines
that begin with `Index:` that mark the beginning of a
new file in the diff. If the file matches any given
patterns, it will not yield the lines corresponding to
that file's diff.

Testing Done:

Ran `rbt diff -X ...` in an SVN repository and successfully
excluded files and empty files.

Reviewed at https://reviews.reviewboard.org/r/6345/
Fixed some issues with the new _filter_diff docstring.

The docstring's summary wasn't on the first line, and there were some
small grammatical errors.
Replaced multiple get_review_request methods with an equivalent utility function.

There was a method called `get_review_request()` in 4 different classes with
identical bodies. They have now been replaced with a utility function in
rbtools.utils.command.

Testing Done:

Manually tested `attach`, `close`, `post`, `publish` commands.

Reviewed at https://reviews.reviewboard.org/r/6348/
Fix output of rbt diff/post for git when -X specified.

Currently, git's filter support does the opposite behaviour
(only includes files that match *all* exclude_patterns).

A new module, `rbtools.utils.diffs`, specifies helper functions
`filename_match_any_patterns`, which determines if a filename matches
at least one of the given patterns, and
`remove_filenames_matching_patterns`, which returns an iterable of the
filenames that do not match any given pattern.

The parameters to `git diff` and `git diff-tree` have been
reordered so that the revision specification is always the last
argument before the filenames.

Testing Done:

All unit tests pass now.
Generated diffs with `rbt diff` in a git repository with more than
one file changed. When `-X filename` was specified, only that
file's diff was excluded from the output.

Reviewed at https://reviews.reviewboard.org/r/6350/
Refactor SVN's filter diff into a utility function

Move `SVNClient._filter_diff` into `rbtools.utils.diffs` so that it may be used
by other SCMClient instances that require filtering.

Testing Done:
Running `rbt diff -X file` with multiple files modified yields the diff for all
files modified except `file`.

Reviewed at https://reviews.reviewboard.org/r/6357/
Add support for -X to the Bazaar SCM Client.

Bazaar now supports excluding files from diffs and posts via
`rbtools.utils.diffs.filter_diff`, which looks through the output of bzr diff
for lines indicating the start of a file's diff. If the file specified matches
any pattern, that file's diff is excluded from the resulting diff or post.

Add a test for checking the result of the BazaarClient's diff with file
exclusion.

Testing Done:
Unit tests pass.

Ran `rbt dff -X ..` in a Bazaar repository and got the specified file was not
included.

Reviewed at https://reviews.reviewboard.org/r/6349/
Add -X support for the CVS SCMClient

The CVS SCMClient can now exclude files from `diff` and `post` output using the
`rbtools.utils.diffs.filter_diff` method.

Testing Done:
Running `rbt diff -X f` in a file with more than just a file `f` changed
returns the diff for all files except for `f`.

Reviewed at https://reviews.reviewboard.org/r/6358/
Merge branch 'release-0.6.x'