Bug 989137 - Part 1: Uninstall unknown experiments; r=Unfocused

Before this patch, experiment add-ons may have existed in the Addons
Manager without the Experiments service knowing about them. This detects
these unknown add-ons and uninstalls them. See the in-line comment on
the rationale behind this decision.

The added unit test fails without the Experiments.jsm change.

--HG--
extra : rebase_source : bb0d0d5d77c7ae562f76e6c647eea25e6a06d99a
Bug 989137 - Part 2: Don't use a global logger; r=gfritzsche

As part of debugging subsequent patches, I ran into issues debugging the
interaction between multiple Experiments instances. To get to the bottom
of the problem, I had to make some changes to the logging framework.
This is the first patch in a sub-series dealing with logging.

This patch stops relying on the global logger. Subsequent patches will
make the logging output aid debugging.

--HG--
extra : rebase_source : 40b34a1444ff3fb70a9da7cf242ee522d6ec07ea
extra : source : 61877a5f15aa01dec05fe1882eae6ad9f18f81a0
Bug 989137 - Part 3: Log.jsm API to get a Logger that prefixes messages; r=bsmedberg

A common pattern for logging is to have multiple loggers for multiple
underlying object instances. You often want to have each instance attach
some identifying metdata contained in each logged message. This patch
provides an API to facilitate that.

--HG--
extra : rebase_source : 5816e0671c78f55cca45bdd1aed52c85695945c4
Bug 989137 - Part 4: Use a prefixing logger for Experiments logging; r=gfritzsche

Logging in the Experiments module were using a common pattern of
prefixing all messages with the type. We move this prefixing into
a prefixed logger.

--HG--
extra : rebase_source : 213a99e93a3569a7f2ab3d72fb37dc0c538e5c97
extra : source : 96def94c8fb705e5ad8af5a1393492a28ea47d16
Bug 989137 - Part 5: Prefix each log message with the instance of the object; r=gfritzsche

We now maintain per-type counts/IDs of each Policy, Experiments, and
ExperimentEntry. The log events for each type are prefixed with the
count/ID so one can easily attribute events to specific instances.

--HG--
extra : rebase_source : 4f1fcc38e5f52ff38b90f9ce71e332492983ff37