Make some common Java interfaces RClasses, update clojure.lang ancestors

Added:
- Iterable
- RandomAccess
- java.util.List
- java.util.Collection
- java.util.Set
Rearrange tests into smaller namespaces.
Add beginnings of a Difference type. See difference.clj for failing tests
make-cset-entry no longer has a 3-arity version
Better line numbers with internal parse errors via u/ann-record
Better errors for runtime parsing of types.
Add precondition, prefer kw in function position
Use file name over namespace name in runtime parse errors
Refactor out logic for dispatching on a :do expression for special ops
Better RClass-supers*

Collects recursive ancestors and does a bit of error checking.
Don't compile any tests since all tests load the entire checker.