Refactoring TTF repair logic
Remove old -moz prefixed rules from viewer.css
Implements reparing of CFF table
Fail if other font types are found
Takes SMask's preblending in account
Remove caching of stream data and fix object loader for streams.
Allow scrolling by keyboard in Chrome/Opera

Set "tabindex" attribute to allow focus;
Added "outline: none" to prevent focus ring from appearing.

Fixes #3443
Bug 879161 - Fix pdf.js mimetype check.
Tests for OpenType fonts
lookChar refactoring
Merge pull request #3386 from yurydelendik/ttf-refactor

Refactoring of TrueType code and implementation of OpenType font repairing
Configurable IMAGE_DIR for annotations

The Chrome extension activates PDF.js by inserting the script tags
in a document whose URL and location origin is identical to the PDF
file.
Because of this, the path './images/' was resolved relatively to the
location of the PDF file instead of the extension.

To fix this, the IMAGE_DIR constant is moved outside the local scope,
to allow extensions/chrome/insertviewer.js to override the value.

Originally, the IMAGE_DIR variable was a global variable, but commit
f8f4b3f45dc6ff5f5b2572b5387389db33616be3 moved the global variable
to the local scope, causing the extension to malfunction.

Impact: low, the only consequence is that some rarely used images
were not visible.

Trivial test:
At the center of page 2, the annotation icon
(images/annotation-comment.svg) should be visible:
http://linorg.usp.br/CTAN/macros/latex/contrib/pdfcomment/doc/pdfcomment.pdf
Merge pull request #3454 from Rob--W/configurable-images-directory

Configurable IMAGE_DIR for annotations to get svg images to show up in Chromium extension
Merge pull request #3447 from Rob--W/chrome-arrow-keys-3443

Allow scrolling by keyboard in Chrome/Opera
Merge pull request #3450 from brendandahl/fix-mimetype-check

Bug 879161 - Fix pdf.js mimetype check.
Merge pull request #3441 from brendandahl/less-cache

Remove caching of stream data and fix object loader for streams.
Merge pull request #3406 from Snuffleupagus/remove-old-moz-prefixes

Remove old -moz prefixed rules from viewer.css
Merge pull request #3439 from yurydelendik/smask-preblend

Takes SMask's preblending in account
Download PDF from cache for non-Firefox add-on

This feature relies on URL.createObjectURL, which is supported by
- Firefox 4
- Chrome 8
- Opera 15
- Internet Explorer 10

If the feature is missing, it falls back to downloading from the server.

The environment-specific code are put in ifdef's. Two methods are
defined:
- noData
  This function is used as a fallback in case of failure, it triggers
  a download directly from the server.
- triggerSaveAs(String url, optional String blob)
  This function attempts to show a Save As dialog for a given URL.
  It attempts to use the a.download attribute, if available, and
  falls back to window.open(<url>, '_parent') if unavailable.

See also http://caniuse.com/download
Put URL = URL || webkitURL in compatibility.js

Declares the URL variable globally. If the feature is not
supported, the variable will still be declared, but have the
"undefined" value.

Supported by:

- Firefox 4
  Firefox 21 in Web worker

- Chrome 8  (prefixed as webkitURL), 23+ unprefixed
  Chrome 10 (prefixed as webkitURL) in Web Worker, 23+ unprefixed

- Opera 15
  Opera 15 in Web Worker

- Internet Explorer 10
  Internet Explorer 11 in Web Worker

- Safari 6 (prefixed as webkitURL)
  Safari 6 (prefixed as webkitURL) in Web Worker