Fix metamodel classes for ceylon/ceylon-compiler#1047

Conflicts:
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/AppliedClassOrInterface.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeClass.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeClassOrInterface.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeClassWithAppliedClass.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeClassWithAppliedMemberClass.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeFunction.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeInterface.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeInterfaceWithAppliedInterface.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeInterfaceWithAppliedMemberInterface.java
Add LangaugeAccess as a way of accessing implementation-dependent APIs which are "private to the language module" from runtime.com.redhat.ceylon.compiler.java.Util. Specifically I wanted a of creating an ArraySequence without copying a pre-existing Java array.

See ceylon/ceylon-compiler#1155.
Util: A new variant of Util.sequentialInstance() which can avoid copying the array in some cases.

See ceylon/ceylon-compiler#1155.
Add methods to the jvm version of Callable. See ceylon/ceylon-compiler#1155.

Conflicts:
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeAttributeWithAppliedAttribute.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeClassWithAppliedClass.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeClassWithAppliedMemberClass.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeFunctionWithAppliedFunction.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeFunctionWithAppliedMethod.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeInterfaceWithAppliedMemberInterface.java
	runtime/com/redhat/ceylon/compiler/java/runtime/metamodel/FreeVariableWithAppliedVariableAttribute.java
Incorrect implementation of some of the metamodel Callable.$call$variadic() methods sufficient to get the metamodel tests to run. Pretty sure they are incorrect. See ceylon/ceylon-compiler#1155.
Add some documentation to compose(), curry(), uncurry(), flatten(), unflatten().
I'm sure Gavin can improve it.
Indent flatten_.java and unflatten_.java using spaces, not a strange mixture of spaces and tabs.
Fix unflatten() for the new methods on Callable

See ceylon/ceylon-compiler#1155.