Implement BazaarClient.parse_revision_spec and add tests.

This implements revision parsing for the BazaarClient. This is a little bit
deficient in that it can't automatically detect whether or not a parent branch
is required when using a revision range. I still haven't entirely figured out
how bazaar's bizarre branch mechanism works, but this at least reproduces what
we had until now, and includes parent diff generation.

Testing done: Ran unit tests.

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