Significant bugwarrior refactor.

* IssueService subclasses return generators (rather than lists)
* Issue subclasses exist
  * Encapsulating full foreign records, and logic for transforming
    records into taskwarrior's format is deferred to those classes.
  * Transform into taskwarrior's format via a `to_taskwarrior` method.
  * Support dictionary operations and operators to minimize changes
    to related APIs.
  * Define UDAs specific to the underlying API.
  * Define a unique key referencing a combination of any taskwarrior
    record attributes (including UDAs) for deduplicating records and
    associating said records with the underlying API.
* Issue subclasses define UDAs used by the foreign API.
* Issue subclasses define a foreign API key used for relating this
  unique issue with
* Multiprocessing has been altered to receive new issues via a queue.
Testing and cleanup of bugwarrior refactor.
Adding tests.
Re-adding URL shortening via Bit.ly.
Fixing two PEP-8 failures.
Updating a slightly out-of-date line in the readme.
Don't declare tasks different if the user has modified the priority locally.
Careful for the default locale here... \ó/
Strip links when doing legacy comparisons.
Pass along details of the MultipleMatches exception.
Proceed along happily if taskwarrior shellout fails at something.
Misc fixes to the bugzilla service.
Misc fixes to the trac service.
Bugfix.
Removing EXPERIMENTAL.rst.
Adding a couple clarification docstrings.
Let's actually explain how this works.
Adding myself to contributors list.
Converting from str to six.text_type.
Fixing error handling such that processing is aborted if there is a single failure.

* Required switching sentinel values to integers -- since the objects
  are pickled when being pushed onto the queue, the value popped off
  of the queue will *not* be the same object.  Sad.
* When any single service fails, abort processing for all to avoid
  marking tasks handled by failed services as 'done'.