Handle added and deleted empty files in 'rbt patch'.

Added and deleted empty files were simply ignored when running `rbt patch` on
SVN, Mercurial, and Perforce repositories since `patch` does not handle empty
files.

Now, we do extra processing after running `patch` to manually check for and
handle any added or deleted empty files in the patch file. These empty files
are expected to have a diff in the same format as that generated by `rbt post`.

Testing Done:
- Ran unit tests.
- Created several review requests using `rbt post` on SVN, Mercurial, and
  Perforce repositories with different diffs: no empty files, an added empty
  file, a deleted empty file, multiple added and deleted empty files, and
  multiple added/deleted empty and non-empty files. Ran `rbt patch` and
  verified that the empty files were added/deleted (via `svn status`, etc.).

Bugs closed: 3390

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