Made it possible to have a tool output formatted exception messages
annotations: We can get away with a single instance of the AnnotationVisitor for all compilation units.
annotation interop: A test for annotation interop
annotation interop: Move isJavaArray() test from AbstractTransformer to Decl
annotation interop: model loader: Keep track of whether an interface is an annotation interface and whether a method on an annotation interface has a 'default' expression
annotation interop: AbstractModelLoader: Set the container of a loaded declaration before adding it to the package. This was necessary to correctly handle javax.annotation.Resource.AuthenticationType
annotation interop: LazyPackage: Build a model for a pretend annotation constructor and annotation class when a (non-Ceylon) Java annotation type is added to the package
annotation interop: LazyPackage: If we fail to find a declaration that might be an annotation constructor, try to load the annotation type and if that succeeds try to find the pretend annotation constructor.

Previously tried loading all the members of the package in getDirectMember() before calling lookupMember() but obviously that would be a perf hit. Perhaps Stef can think of a less ugly way.
annotation interop: Decl: A test for whether an annotation class is one of the synthetic ones invented by the model loader for interop
annotation interop: Decl: A test for whether an annotation class is one of the synthetic ones invented by the model loader for interop
annotation interop: AnnotationInvocationVisitor: Necessary changes for transforming interop annotation invocations.
annotations: For a simple variable Value (no getter or setter blocks) only annotate the getter method
annotations: Improve AnnotationTarget test for the case of variable values (we should only be annotating the getter) and check we can independently annotate setters declared with 'assign'.
annotation interop: Track primitive array types properly when constructing the fake model for interop annotation constructors.
annotation interop: The expected type is the type of the parameter, and handle array types by getting the iterated type (whose underlying type will have been set correctly for primitive arrays by LazyPackage)
annotation interop: tests: Test primitive arrays.
model loader: override toString on Javac\* and SimpleReflType to make all this time I'm spending in the debugger more pleasant.
annotation interop: Try to handle Class[] annotation members
annotation interop: AbstractModelLoader: When we arbitrarily decide to substitute Object at least record the underlying type. This isn't a proper fix, but right now it helps me distingush a Java method that returns java.lang.Class[] which would otherwise appear to have return type ObjectArray<Object>.
annotation interop: Handle annotation type members which return java.lang.Class[]