Utf bytecode generator

Added a lot of bytecode generation based UTF8-String creators to get rid of the Object[] array which is created while invoking a reflection based constructor.
The Java8 generator uses sun.misc.Unsafe::newStringUnsafe which was added in Oracle Java 8 while the MagicAccessorImpl based ones using the same trick as internal reflection classes which are generated at runtime on Sun/Oracle/IBM JVMs.
For all other JVMs it just uses the reflection based accessor to the String constructor or if nothing else works it falls back to new String(char[]) which will use System.arraycopy internally and copies the char-array.

It doesn't introduce any dependency but offers a lot different generators based on available bytecode generators inside the classpath. On Sun/Oracle and IBM JVMs there is an internally available BCEL generator which can be used (that's why we need the new buildstep which relocates the BCEL packages to those internal imports - they might not be available while compiling).