Feature detection after downgrading the browser.

If a user downgrades from Chromium 35+ to 34, then the PDF Viewer
extension will not work any more because the extension assumes
that certain features were available based on the cached feature
detection results.

To resolve this problem, all feature detection scripts run again
if the browser was downgraded.
Make CMap.map quasi-private.

This makes it easier for the representation to be improved.
Optimize CMap.prototype.forEach().

This change avoids the element stringification caused by for..in for the
vast majority of CMaps.

When loading the PDF from issue #4580, this change reduces peak RSS from ~650
to ~600 MiB, and improves overall speed by ~20%, from 902 ms to 713 ms.  Other
CMap-heavy documents will also see improvements.
Merge pull request #5090 from Rob--W/crx-feature-detect-downgrade

Re-run feature detection after downgrading the Chromium browser.
Add a reduced test-case for issue 4800
Managed preferences for Chrome administrators

Implement support for managed preferences. This feature allows users
(administrators) to easily change the default settings of the PDF Viewer for
all Chrome or Chromium browsers within their organization.

External resources for end users (administrators)

- http://www.chromium.org/administrators/
- http://www.chromium.org/administrators/configuring-policy-for-extensions
- http://www.chromium.org/administrators/windows-quick-start
- http://www.chromium.org/administrators/mac-quick-start
- http://www.chromium.org/administrators/linux-quick-start
- http://www.chromium.org/administrators/policy-templates

Administrators can read one of the previous links to learn more about creating
policies. We want to auto-generate these templates, but there are no public
tools for doing that. It will be added in the future, see:
https://code.google.com/p/chromium/issues/detail?id=389061

Resources for PDF.js/extension developers

- http://cs.chromium.org/file:policy_templates.json
- https://developer.chrome.com/extensions/manifest/storage
Use CSS.supports instead of '..' in ....style

document.documentElement.style is null in some XML documents.
The previous snippet caused the following error:

Uncaught TypeError: Cannot use 'in' operator to search for 'animation' in null

To fix this bug, `'animation' in document.documentElement.style` has been
replaced with `CSS.supports('animation', '9s')`. This method was introduced
in Chromium 28, but it is not necessary to detect whether this method is
supported because the required createShadowRoot method for embeds is not
available in Chromium 32 and earlier.
Merge pull request #5103 from Snuffleupagus/issue-4800-test

Add a reduced test-case for issue 4800
Merge pull request #5104 from Rob--W/crx-contentscript-fix

Use CSS.supports instead of '..' in ....style
Merge pull request #5082 from Rob--W/chromium-managed-preferences

Managed preferences for Chrome administrators
Add a couple of reduced test-cases for PR 4259

PR 4259 fixed a large number of font bugs, but none of those where added as test-cases. This was, in my opinion, unfortunate since it increases the risk of regressions in the future when other font bugs are fixed.
This PR simply adds a few more test-cases, to improve our test coverage somewhat.
Attempt to fix Travis
Merge pull request #5106 from timvandermeij/travis-fix

Attempt to fix Travis
Merge pull request #5105 from Snuffleupagus/pr-4259-tests

Add a couple of reduced test-cases for PR 4259
Use strict equalities in test/driver.js
Use strict equalities in test/unit/{function_spec, stream_spec, testreporter}.js
Merge pull request #5101 from nnethercote/CMap-forEach

Avoid expensive for..in loops involving CMaps
Fix JBIG2 decoding issue #5026
Merge pull request #5109 from timvandermeij/strict-equalities-test

Use strict equalities in test/*
Merge pull request #5110 from fkaelberer/issue5026

Fix JBIG2 decoding issue #5026