Starting on supporting call next method and also local functions with
multi part names.
Add a ListUtil.compare() that takes a custom Ord instance.
A whole bunch of refactoring, trying to making things a bit more
sane/simpler/functional-style.