Fix bytecode instrumentation to work on pre-instrumented classes.

Currently, AsmInstrumentingClassLoader wipes out everything in a constructor leading to the invokespecial for "<init>". If the class has already been instrumented, for example for Emma or Jacoco offline code coverage, then part of this instrumentation is destroyed, failing verification at load time due to incorrect bytecode trying to access local variables no longer defined.

Ideally, instrumented classes should not overlap with classes to shadow, but this is not easily enforced. Jacoco is used to instrument everything following a certain package pattern, at the build system level, while shadows can be selected programatically. This bug prevents us from having a working coverage setup.