Update dependencies

Time to ensure it works with all the latest dependencies from pip.
Add branch analysis to coverage

Coveralls can measure both line and branch coverage, so it's worth
making use of.
Handle reviews with no patchsets

Add a guard check to avoid an exception in the constructor of a Review
object if Gerrit returns a query result that does not contain a list
of patch sets.

Also add a test to check the exception is no longer thrown.