Initial set of tests for parser
more tests for parser
Bug 817610 - Fast path for simple Strings in Compiler. r=gandalf
Bug 869382 - (follow-up) Fix a typo: s/i/id/
Bug 868853 - Internet Explorer 10 compatibility. r=stas
Bug 869382 - (follow-up) Set `this` in filters correctly
remaining part of python parser tests ported to js, coverage up to 99%
no bug, minor change to parser to properly raise exception on multiple default items on hash list
Bug 817610 - (follow-up) Fast path for strings in Attributes

Follow-up fix to bug 817610 to add the same optimization to Attributes and to
fix the regression it caused in Entity::_yield which should always return
a [locals, value] tuple.
no bug; minor parser fixes: store Attribute type for elements, properly move string closure search, and support inequality expression
Bug 883636 - Create CLI tools. r=gandalf

Create CLI tools for parsing, compiling and perf measurements.

`parse.js` is a utility script that uses L20n's Parser to parse a string into
an AST and output the result.

`compile.js` is a utility script that uses L20n's Compiler to parse and compile
a string into Entity objects and output the result.

`perf` is a utility script to measure the performance of parsing, compilation
and getting entities.
Bug 869372 - Don't silence unknown errors in promises. r=gandalf
update parser tests
Merge branch 'master' of github.com:l20n/l20n.js
Bug 881292 - addResource and linkResource should be consistent. r=gandalf

The patch makes both addResource and linkResource lazy (called only in
Context::freeze).

If Context::registerLocales has been called, it will add resources to all
regular locales in _locales.  Otherwise, it will create a __none__ locale in
_locales and will add inline resources and URIs.  It will throw if
linkResource(Function) has been called, because there's nothing we can replace
{{lang}} with.

                            __none__   _locales
    addResource                y          y
    linkResource(string)       y          y
    linkResource(function)                y

__none__ is created lazily, inside of Context::freeze, if registerLocales
wasn't called, or it was called with null as the only argument.

This way, __none__ behaves similar to a regular locale in that it's part of
the _locales dict and part of the _available array.

    var ctx = L20n.getContext();
    ctx.addResource('<brandName "Firefox">');
    ctx.freeze();
    //_available is ['__none__']
    ctx.registerLocales('es', 'en-US');
    // available is ['es', 'en-US']
    ctx.registerLocales();
    // _available is ['__none__'] again
Bug 869210 - Silence dryice's errors. r=gandalf

This patch also removes the dpes arrays from defines in built l20n.js
(No bug) Move intl.js out of l20n/platform. r=gandalf
Bug 884306 - Set lang and dir on document.body. r=stas
Bug 882601 - make document.l10n available early. r=stas
Bug 877227 - @screen.width should be called @screen.width.px. r=gandalf