Refactored to support migrating issues from multiple source
repositories, where previously there was a 'source' repository now there
are multiple 'sources' (there still may be only one source, but that's
just a sources list with length 1).

In order to support this there are a few major changes to the
configuration handling (ideally this should have been a separate change,
but it was easier to keep as a single change):

- The format of the config.ini has changed.  Gone are the [settings],
  [target], and [source] sections.  They have been replaced with a
  section called [global].  All options previously under [settings] can
  now go under [global].  There are two additional options under
  [global]: 'sources', and 'target'.  These indicate the name(s) of the
  source repository (repositories) and the name of the target
  repository.  Multiple sources may be either comma-separated, or listed
  on multiple lines.

  In addition, the config.ini now supports repository-specific sections,
  where settings particular to each repository can be given.  These
  sections are not required, but serve some of the old purpose of the
  [target] and [source] sections.  See the config-enterprise.ini.sample
  file for an example of the format.  All options that go into [global]
  (other than sources and target) can also go into repository-specific
  sections, so that those settings can be made on a per-repository
  basis.  The script will use repository-specific settings by default,
  and fall back on the global settings when not specifid.  This can also
  be used to provide repository-specific authentication details (there
  is still a separate [login] section which provides *global*
  authentication--I considered merging this into the [global] section
  but for now it is separate).

- Internally, the script no longer uses the ConfigParser object to
  read/write settings, as it is somewhat awkward to work with as a data
  structure outside the context of reading/writing config files.
  Instead the configuration is just read into a nested dict.  Most
  settings provided at the command-line just override the [global]
  settings in the config.ini.