Java compliant main signature
Adapter bytecode generation and runtime fixes

long and double arguments take 2 slots, even as parameters:

  (long a, long b)

requires:

  LLOAD 0
  LLOAD 2

This commit also changes the adapter constructor code to start by setting the adapter definition
field first before calling the parent class constructor. This is fine as PUTFIELD does not break the
(idiot) rules of the JVM verifier regarding <init> methods.

This was required to support constructors that do more than initializing fields (e.g.,
javax.swing.JFrame).

Thanks Philippe for reporting the initial cause.
Applying @jponge comments
Doc updated
Doc formatting
Merge pull request #104 from danielpetisme/main-method-bytecode-generation

Java compliant main signature
Reformat