Fix Mercurial's _set_summary() and _set_description()

I was experiencing exceptions when using `rbt diff --revision-range`:

Traceback (most recent call last):
  File "/Users/gps/src/firefox/obj-firefox.noindex/_virtualenv/bin/rbt", line 9, in <module>
    load_entry_point('RBTools==0.5.2.dev', 'console_scripts', 'rbt')()
  File "/Users/gps/src/rbtools/rbtools/commands/main.py", line 113, in main
    command.run_from_argv([RB_MAIN] + args)
  File "/Users/gps/src/rbtools/rbtools/commands/__init__.py", line 157, in run_from_argv
    exit_code = self.main(*args) or 0
  File "/Users/gps/src/rbtools/rbtools/commands/diff.py", line 95, in main
    files=args)
  File "/Users/gps/src/rbtools/rbtools/utils/diffs.py", line 13, in get_diff
    repository_info)
  File "/Users/gps/src/rbtools/rbtools/clients/mercurial.py", line 388, in diff_between_revisions
    self._set_description(revision_range)
  File "/Users/gps/src/rbtools/rbtools/clients/mercurial.py", line 379, in _set_description
    if self.options.guess_description and not self.options.description:
AttributeError: Values instance has no attribute 'guess_description'

This patch makes the exceptions go away.

Reviewed at https://reviews.reviewboard.org/r/5063/
Support hidden changesets in Mercurial

Before this patch, if hidden changesets were specified (e.g. with
--revision-range), rbtools would fail because Mercurial would complain
about changesets not being found. Mercurial "pretends" it doesn't know
about hidden changesets unless --hidden is specified.

This patch adds --hidden to all Mercurial commands that could interact
with hidden changesets. If the current Mercurial install doesn't support
hidden changesets (this is detected at run time), this argument is
stripped before command execution.

An alternative to this implementation would require the user to pass
--hidden to rbtools or would require the user to activate hidden
changeset support in the rbtools config. It is the opinion of this patch
author that things should "just work" and the user shouldn't be required
to do anything special to get rbtools to play nice with hidden
changesets.

Testing Done:
Manually testing diff --revision-range with hidden changesets.

Reviewed at https://reviews.reviewboard.org/r/5064/
Support of Perforce Brokers

Modification of Perforce client to support Perforce brokers. First check if the
P4 Info has a Broker address defined .. if so use the broker, otherwise (as
before) check the Server address.

Testing Done:
Been using this mod for over a year at Cadence on RBTools 0.5.1

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

Fixes bug 2568.
Enable loading of hgrc files and normalize diff settings

Not loading hgrc files (the prior behavior) was wrong because hgrc files
could provide desired or even required functionality.

The reason why hgrc files weren't loaded was concerns over consistent
command output, mainly for `hg diff`. These concerns have been addressed
in the form of a custom Mercurial extension that resets diff settings at
run-time.

Fixes bug #3034
Reviewed at https://reviews.reviewboard.org/r/5065/
Add Gregory Szorc to the authors list.