Mark varargs functions
Make varargs closures variable argument collectors

The arguments partial application using insertArguments sometimes drops
the variable argument collector status of method handles. This raises
bugs in, say, dynamic object method dispatch.

This fixes #79 by generating some extra bytecode to call
asVarargsCollector after the partial application.
Spurious DUP
Add a "find" method to Collections SA
Find returns the first element of the collection which matches the predicate or null
Reproduce the original test case for #79
Deal with varargs closures with more than 1 parameter
Contrieved test case
Merge pull request #81 from danielpetisme/sa-find

Add a "find" method to Collections SA
Merge pull request #80 from jponge/wip/fix-79

Make varargs closures variable argument collectors
Add a "isFrozen" method to DynamicObject
Helper method useful to properly manage immutable objects. (Prevent some ugly try/catch code).
Merge pull request #83 from danielpetisme/dynob-isfrozen

Add a "isFrozen" method to DynamicObject
Missing documentation for isFrozen()
Helper functions for dealing with array types

Fixes #82.
Merge pull request #84 from jponge/wip/fix-82

Helper functions for dealing with array types
Switch to insertion-ordered sets and maps in the IR

Fixes #85.

The side effect is also a predictible IR and bytecode generation across
compilations, which is useful for, say, diagnosis.
Merge pull request #86 from jponge/wip/fix-85

Switch to insertion-ordered sets and maps in the IR
Write line numbers in the bytecode
Merge pull request #87 from jponge/wip/line-numbers

Write line numbers in the bytecode
Disabling openjdk7 builds
Anonymous function invocation

Anonymous function invocations can happen after function and method
invocations, as shown in the following example:

let adder = |x| -> |y| -> x + y
var value = adder(1)(2)
println(value)

let obj = DynamicObject():
  define("adder", |this, x| -> |y| -> x + y)
value = obj: adder(10)(20)
println(value)