Merge pull request #146 from raichoo/javascript

Javascript backend
Parse case options as patterns, not expressions
Fixes issue #147
Make unification faster by computing HNF rather than normalising
Improve elaboration efficiency by cutting down on excessive backtracking
REPL shouldn't try to be too clever...
Fixes first part of issue #150
tailcalls: javascript backend
javascript: use runMain0 instead of main