annotations/metamodel: Add AnnotationBearing to make it easier to obtain the Java annotations for a metamodel object
annotations/metamodel: Make Declaration, untyped/Declaration and untyped/Module and untyped/Package satisfy Annotated.
annotations/metamodel: Make Parameter satisfy Annotated and introduce AnnotationBearing in the metamodel implementation for getting the Java annotations of an annotated thing.
annotations/metamodel: Make all the language module annotations satisfy either OptionalAnnotation or SequencedAnnotation, and add TODOs for contraining the program elements each can appear on
annotations/metamodel: Metamodel: Add some methods for obtaining annotation instances at runtime using Java reflection to get the Java annotations and then converting these to Ceylon annotations.
annotations/metamodel: Rework Metamodel's support for annotations, using AnnotationBearing to obtain the annotations, and also having it use a SequenceBuilder rather than a List, to avoid making unnecessary copies
annotations/metamodel: SequenceBuilder: Add a hidden overloaded constructor for when we know the expected size of the sequence we're going to build.
annotations/metamodel: Implement annotations() as a native function implemented using Metamodel. optionalAnnotation() and sequencedAnnotations() implemented in ceylon.
annotations/metamodel: Change build.xml for previous change
annotations/metamodel: doc on ConstrainedAnnotation.occurs() so it's not confused with a test for whether the given element actualy has >=1 annotation instances on it
annotations/metamodel:  checkInit() before trying to get annotations, in case declaration is null
annotations/metamodel: Metamodel: Methods for getting the Java class of the module and package descriptor, and implement $getJavaAnnotations() from FreeModule and FreePackage using this.