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.