Fixing the reporting of error locations when they occur on the right-hand-sides of cases branches.  Fixes #245
Rewrite of toRepr algorithm to handle references, and output "graph" or "m-graph" expressions as the representation.   This also affects tostring, since they use the same underlying function.  I've changed all uses of "foo.tostring()" or "foo._torepr()" to be "tostring(foo)" and "torepr(foo)", since the arity of the methods have now changed to take a callback.  NOTE: That callback should always shadow the global tostring or torepr, since it is a customized function that can handle re-entrant calls into the toRepr algorithm and make references work out correctly.  This commit also requires a small change to error-ui in c.p.o, so that it doesn't (reflectively) call tostring methods directly on error values, but instead calls the global toReprJS function.

Lasltly, this merges a change from master (which should've been its own commit, but it's a small change) to improve error location reporting inside cases expressions.

Conflicts:
	src/arr/compiler/anf-loop-compiler.arr