Fix ambiguous methods in test_nil_assign
Assignment should infer to the right side, not the left

a = 1.0
b = a = 0
# b is int, a is double
Fix constructor definitions
Constructor lookup shouldn't search parent classes.
Fix widen.
Support closures.

 - Support captured variables in JVMScope
 - Support BlockType during MethodLookup
 - Support finding the abstract methods in a type.
Implement boxing.
Varargs method lookup.
Fix selfType in child scopes.
Implement annotation retention
Fix loading macros from source.
Always search interfaces for methods - we don't need the methods for non-abstract classes, but we do need the macros.
Fix scope caching.
MirrorProxy needs to support declareField.
Interface fixes.
Infer argument types from superclass.