Merge branch
Merge tests
retrolambda/pom.xml
Primitive tests makes sense
Main cleaned up,
Code reformat
Refactored code style: tests before their guinea pigs
Refactored DefaultMethodsTest a lot
DefaultMethodsTest: additional test for class hierarchies
DefaultMethodsTest: additional test for bridge methods
InterfaceStaticMethodsTest: method references are handled differently from lambdas (no synthetic lambda method), so have separate tests for each of them
Feature toggle for default methods support
Merge branch 'default-methods'
Java 7 bytecode cannot contain calls to static methods of library interfaces

It'll cause an error already at class loading time.

Example failure:

Caused by: java.lang.VerifyError: Illegal type at constant pool entry 123 in class net.orfjackal.retrolambda.defaultmethods.Helpers
Exception Details:
  Location:
    net/orfjackal/retrolambda/defaultmethods/Helpers.isPrimitive(Lnet/orfjackal/retrolambda/asm/Type;)Z @55: invokestatic
  Reason:
    Constant pool index 123 is invalid
  Bytecode:
    0000000: 1008 bd00 5c59 03b2 0060 5359 04b2 0063
    0000010: 5359 05b2 0066 5359 06b2 0069 5359 07b2
    0000020: 006c 5359 08b2 006f 5359 1006 b200 7253
    0000030: 5910 07b2 0075 53b8 007b 2a59 b600 7f57
    0000040: b800 85b9 0089 0200 b900 8d01 00b6 0092
    0000050: ac

        at net.orfjackal.retrolambda.LambdaUsageBackporter$InvokeDynamicInsnConvertingMethodVisitor.backportLambda(LambdaUsageBackporter.java:170)
        at net.orfjackal.retrolambda.LambdaUsageBackporter$InvokeDynamicInsnConvertingMethodVisitor.visitInvokeDynamicInsn(LambdaUsageBackporter.java:163)
        ...

Where the bytecode is:

Constant pool:
  ...
  #123 = InterfaceMethodref #119.#122     //  java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;

   public static boolean isPrimitive(org.objectweb.asm.Type);
        ...
        55: invokestatic  #123                // InterfaceMethod java/util/stream/Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;