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/