Add internal support for initializers in new expression.

I still need to add support for the syntax though.
Add syntactic support for initializers in new expression.
Don't use "fromJust", because it gives bad error messages.
Started work on new pretty printer.
Cleaned up pretty printer a bit.

It still has some work to go though. For another time.
Support icast from IntV to IntT.

Which can arise in case the IntV is 0 or 1.
Fixed bug in scalar/array promotion.

You need to promote the elements of the array, not the array itself when
converting a 1d array to a 2d array.
Removed dimension function.

Because we don't need it, and I never really liked it anyway.
Initialize ints to 0.

It's not clear from Sketch if this is the correct behavior, but it's more
lenient, and fixes some broken sketch test cases.
Fixed bug in implementation of repeat statement.

Where the count was being re-evaluated after each iteration, which was wrong
if the body of the statement effects the repeat count.
Cleanup how "scoped" function works.

Just return the result, not the scope after evaluation.
Minor cleanup on how sketches are run.
Support ref args for sketches.
Make one BinaryE expression with different BinOps.

In preparation for supporting regex holes.
It also cleans up some functions.
Add internal support for regex choice operator (untested)
Initial support for regular expression holes.
Preliminary support for regex operator choice.

I think there are bugs in the parser though.