SequenceBuilder: Minor
annotations: Constrain the language module annotations to their respective program elements.
annotations: Add Import metamodel type to represent module imports, plus its implementation FreeImport
annotations: The appied metamodel types no longer satisfy Annotated.
metamodel: Very minor.
metamodel: Add untyped.Variable and untyped.Setter and their implementations FreeVariable and FreeSetter so that we can get the annotations on setters.
metamodel: FreeFunction.findMethod(): Don't throw until we know for sure the method is ambiguous,
also exclude bridge and synthetic methods. Likewise for FreeClass.findConstructor(). Shame java.lang.reflect doesn't yet allow me to abstract over these callable reflection types.
Implement FreeDeclaration.annotations().
annotations metamodel: Factor out the complicated test used in Package.members(), 'cos I'm going to need to reuse it.
Also fix it to it works with <Variable> as a type argument.
annotation metamodel: Introduce a utility for looking up methods (and let's face it, in due course various other things) on classes, since the Java reflection API is so painful, what with its checked exceptions, and getMethod() only working with public methods.
annotations metamodel: Implement Package.annotatedMembers() in FreePackage. See, I said I'd need to reused that memberMatches() method.
annotations metamodel: Another use for Reflection.
annotations metamodel: Factor out FreePackage.memberMatchers() and the predicate for whether the member is annotated into Metamodel, so I can later reuse it for the members() and annotatedMembers() methods of FreeClassOrInterface.
annotation metamodel: Reuse Metamodel.isMemberOfKind() in FreeClassOrInterface.
annotation metamodel: Implement FreeClassOrInterface.annotatedMembers()
annotations metamodel: In order to support Union and Intersection types as type
arguments to untyped.Package.members(), untyped.ClassOrInterface.members(),
untyped.Package.annotatedMembers() and untyped.ClassOrInterface.annotatedMembers()
introduce a Predicate interface to evaluate whether a members should be
included in the method result.
annotations metamodel: More work on annotatedMembers().
 annotations metamodel: Generify DeclarationPredicate.Predicate
annotation metamodel: Fix Metamodel.annotations() so it handles union and intersection types.
 annotations metamodel: Rename DeclarationPredicate-> Predicates, and generally tidy it up.