i18nliner interlude: separate out i18n.js hacks

to facilitate i18nliner.js runtime integration and an i18n.js
upgrade, separate all the tweaks we've made to the latter in
the last 3 1/2 years

vendor/i18n.js is the one we originally started with, i.e.
https://github.com/fnando/i18n-js/blob/61c0396/source/i18n.js

test plan:
1. specs should pass and canvas should not be broken

Change-Id: I40f1118e960ec529a89a4ed0eaae2280f038c946
Reviewed-on: https://gerrit.instructure.com/42893
Reviewed-by: Jennifer Stern <jstern@instructure.com>
Product-Review: Jennifer Stern <jstern@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>
i18nliner-js (part II)

this swaps out (most of) our runtime i18n.js hacks with i18nliner-js

slightly tweak our js htmlEscape implementation (but not behavior) to play
nicely with i18nliner-js

remove auto-scoping abilities of I18n.lookup, but that's not a huge
deal as we didn't really need it

test plan:
1. verify english defaults:
   1. use canvas in english
   2. confirm everything looks correct
2. verify translation keys/scopes:
   1. run canvas w/ RAILS_LOAD_ALL_LOCALES=true and optimized js
   2. use canvas in spanish
   3. confirm that todo está bien
3. confirm you can now use i18nliner-y features:
   1. call `I18n.t` without a key

Change-Id: I93a2763f638f2807a7f804d320409fbdc80f0454
Reviewed-on: https://gerrit.instructure.com/42895
Reviewed-by: Michael Ziwisky <mziwisky@instructure.com>
Product-Review: Jennifer Stern <jstern@instructure.com>
QA-Review: Matt Fairbourn <mfairbourn@instructure.com>
Tested-by: Jenkins <jenkins@instructure.com>