Merge pull request #211 from vandenoever/qt4.8.2_fix

Fix for browsers that do not support ArrayBuffer.prototype.slice.
Remove unsupported metadata fields such as
document-statistic and editing-duration upon
the first edit, because otherwise they'd be
inconsistent with the rest of the document
and with dc:date respectively.
Merge pull request #212 from adityab/unsupported-metadata

Remove unsupported metadata fields upon first edit
Fix more types in runtime.js.
There are still a number of tough type situations involving eval left over.
Add more type information to class UnitTester.
Add more type information to class UnitTester.

The names of the test functions are now passed separately from the function in
a structure. The reason for this is that Closure Compiler does not allow adding
additional fields to functions.
Let JSLint be tolerant of @type annotations for Closure Compiler.
Whitespace cleanup.
Add more type information to class UnitTester.
Make a typesafe version of mergeObjects.
Add more type information to Zip class.
Better typechecking in SessionController and Namespaces.
Some type improvements on AnnotationViewManager.
Unfortunately, OdfCanvas and AnnotationViewManager have a circular dependency
and until that is resolved no type progress can be made.
A number for Cursor related type annotations.
Add types to LSSerializer.
Initial step for adding typing information to the RelaxNG validator.
Make Runtime play a bit nicer with closure compiler.
Add some types to rng parser.
Some types for XPath.
Simplify loading of classes.
runtime.js is now 100.0% typed. The contents of packages.js moves to runtime.js. manifest.js files now use JSON format.