[IMP] update qweb-js tests

* latest qunit
* template loading (handle async)
* add format tests
[IMP] qweb-js: reimplement string interpolation compilation as a single pass
[ADD] qweb-js: jinja-style interpolation pattern
[ADD] qweb-js: escf, rawf for parity with Python version
[IMP] qweb doc, tests

* document qweb based (mostly) on JS version
* convert JS qweb tests to (mostly) language-independent XML so they can be
  used for JS and Python implementations
* add some more tests (e.g. precedence between t-value and body in t-set)
* remove ``t-import``
* fix parity in foreach(dict) (and rename some variables to make array and
  object versions more similar)
[ADD] running of XML cases to python qweb
[ADD] qweb: handling of t-att=mapping

Changed render_att_att to return an iterable of pairs instead of a pair, and
dispatched t-att on whether its result is a Mapping.

Also changed qweb test runner so it uses ordereddict for JSON mapping in
params, otherwise iteration order (and thus order of attributes in output) is
unpredictable and results don't/can't match expectations (as both are
strings).

Note that this relies on JS implementation details wrt iteration order of
mappings. Tests would probably be somewhat less brittle if rendering output
was parsed to XML... if that's possible (?)
[ADD] qweb: call directive's body

* __content__ can't be used in Python implementation because safe_eval, so use
  ``0`` from Python implementation instead
* remove postfix from t-call tests because due to implementation details all
  whitespace crap following a t-name is added to rendered template in Python
  impl, and don't want to normalize whitespace.
[IMP] qweb: foreach handling

* fix mapping handling to match JS impl: current value set as _value instead
  of being lost
* add handling of integer parameter
* only set _size and _last if current iterable is sized
[ADD] pyqweb-specific stuff, pyqweb APIDoc
Merge pull request #2269 from odoo-dev/8.0-qweb-doc-and-fixes-xmo

QWeb documentation, fixes and improvements
[FIX] gamification: on delete goal user, cascade

Otherwise, this is no more possible to delete users with gamification goals
[MERGE] forward port of branch saas-3 up to 56f678c
[ADD] JS widgets reference documentation

Also fixed Widget#alive's behavior and tested it
[ADD] port webclient RPC doc from web/doc
[FIX] sphinx 'project' value

The project name automatically gets the release and the literal string
"documentation" appended by default (and "html_title" can be set to generate a
title differently), so having "documentation" set in the project variable
duplicates it in the page title.
[FIX] JS tutorial