TimeGrid: add legend drawing to canvas.

Tweak palette for diff mode to make it exactly symetrical.
Remove warning (unused import).
Isochrone WS: properly handle default values.
TimeGrid WS: Parametrize returned data channel.

Handle for now: clock time, num boardings, total walked distance.
Handle discrete values and meters in ColorMap.
Handle various data channel in TimeGrid.js.
Properly handle rounding in ColorMap.
Use z instead of t variable in TimeGrid.
OTPA js: various refactoring.

- Use existing otp.js framework to define classes and namespaces.
- Modify namespace to "otp.analyst." to align to existing OTP js code.
- Tweak ColorMap to handle discrete delta, make sure delta is symetrical.
- Add ParamsWidget class to easily handle common request params (date/time/modes...)
- Simplify the demo code.
OTPA js lib: add first i18n (widget).
OTPA js: Remove extra fields from request params.
OTPA js: Add Isochrone class options.
Marseille: Add project specific client file.
Analyst JS: Load population from CSV file.
Marseille: Add demo score on school population.
Return this in Population.js for method chaining.
Marseille: Display population as POI on map.