fixing spacing issue around angle brackets (since the numeric
comparison operators require spaces around them, but instantiation
expressions don't) by adding low-precedence LANGLE and RANGLE tokens
(that are not surrounded by space), and letting all expressions
besides binops take either LANGLE or LT, and RANGLE or GT.

cleaning up rnglr.js so that if the parse fails for some reason it
returns undefined, rather than aborting with an uncaught exception.

also cleaning up bnf-grammar.js to take a filename to be parsed as an
argument, rather than hard-coded, and cleaning up the makefile to
account for that change.