Rewrote the Asm coercion system

The coercion system now supports every primitive type, including arrays,
and nested arrays.

There are plans to move method overload resolving to generated bytecode,
thats why getCoercedClass is deprecated.

(This commit also adds dependency to the asm-commons jar)