Execute JavaScript output after DOMContentLoaded

Previously, JavaScript generated for the browser would only execute on
the DOMContentLoaded event. We should also check if the browser is
already ready. We can do this with the following:

    document.readyState == "complete" || document.readyState == "loaded"
javascript: remove redundant local constructors
Add updateAt to Vect.
Report REPL errors in IDESlave with highlighting
Report errors loading files using semantic highlighting
Turn of width detection in batch mode

This should make Idris more script friendly, which is good for our test suite.
Use pretty-printer for errors in imports
Add 'Lazy' type for capturing delayed computations
Fix argument syntax to match what Idris actually wants
Make (++) right associative

Since (++) recurses on its left argument, (l ++ c) ++ r traverses l twice,
while l ++ (c ++ r) only once.

Furthermore, making (++) the same precedence as (::) enables the two to be
mixed.
Remove | annotation, make Force/Delay implicit

Laziness is now fully typed.
Remove EVALs from generated code

Except where explicitly required by a Force
javascript: strTail could not be optimized properly
javascript: fix detection of constant constructors
javascript: removed unoptimizable JSRaw
Merge pull request #874 from puffnfresh/javascript-ready

Execute JavaScript output after DOMContentLoaded
Merge pull request #875 from raichoo/javascript

javascript: remove redundant local constructors
Merge pull request #878 from walkie/master

Add updateAt to Vect.
Merge pull request #883 from david-christiansen/semantic-pprint

Highlight errors in ideslave
Merge pull request #885 from david-christiansen/fix-help

Fix argument syntax to match what Idris actually wants