Use generators for returning results and filtering

Improve memory usage on large datasets by returning query results and
filtering with generators. This avoids the creation of multiple
lists, each containing a complete copy of the result set.
Return all gerrit results, not just the first page

Gerrit paginates query results using sortKey. We were only pulling
back the first page. Apart from returning incomplete results, this
also means we weren't getting the expected data when sorting and
filtering, as only some of the dataset was being considered.
Add a limit command line option

Limit the number of results displayed.
Allow uniq_itr to take a key generator function

Allow uniq_itr to check keyfunc(i) rather than i.
Move filtering of duplicates out of display code

Filter duplicates with other filters. This also means that duplicates won't be
counted when applying a limit, which is probably what the user expects.
Allow stderr of executed commands to go to stderr

We don't check or use this stream anyway, so creating it just invites deadlocks.
Don't return err from tiny_p

We don't use it, so don't return it.
Use subprocess.check_output if we have it
Add option to display results as a dependency tree

If selected, results will be sorted such that if a change depends on another
change it will be below the parent change. The first field displayed will be
indented to visually indicate the dependency relationship.
Merge pull request #14 from mdbooth/dependencies

Dependencies