Markup-preserving wrapper for Apertium

This wrapper uses LinearDoc to transform the markup, and Apertium to
translate the plain text.

lineardoc/LinearDoc.js
* TextBlock.translateAnnotations: apply markup to plaintext translation
* TextBlock.getTextChunkAt: find text chunk at a given char offset

mt/Apertium.js
* translateText: spawn apertium to translate position-spanned plaintext
* translateHtml: do translateText, then LinearDoc to restore annotations

tests/testApertium.js
* Test script (depends on Apertium so cannot run on QUnit/gerrit)

Change-Id: I874ad18b0d9af53b44197e8632fc78de02a1d49c