Fix up bugs in `rbt patch` with old-style review requests.
Fix up bugs in `rbt patch` with old-style review requests.

The new rbt patch implementation did a pretty good job of applying
commits from new-style review requests that have multi-commit history,
but it broke with old review requests that just have single diffs. This
change fixes up the issues I ran into:

- The code was never populating the `commits` list, unless `--squashed`
  was given. It then would always use `commits[0]`, blowing up. I've
  changed it to fetch the full diff data when there are no commits.
- When `--squashed` was specified, we'd end up passing `expand=None` to
  the API request, which would then blow up.
- The code that determined whether to create the commit wasn't working
  properly with `--squashed`, because it was testing `patch_num` as if it
  was 0-indexed when in fact it's 1-indexed.

Testing Done:
- Was able to apply patches from review requests without commit history.
- Was able to apply patches using `--squashed`
- Ran unit tests (there are some problems with the test suite right now
  but those are unrelated to anything touched here).

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

reviewboard/rbtools,reviewboard/rbtools,reviewboard/rbtools