replace BCEL api with ObjectWeb ASM api.

now this class is ready to support generics!
support generics
improve test case to cover Map and concrete collection