Fixes an inconsistency that resulted in a bad AST.

In some cases the Pruner would leave the AST in an incosistent form
where there is a JNewInstance poiting to a JConstructor that is has
been already removed from the correspoinding class.

Suprisingly most passes seem not to care as, in fact, this constructor
is actually unreachable. However, under the correct (or should I say
wrong) circumstances MethodInliner fails due to inconsistent
expectations about the parameters of the method it inlines.

This patch also adds a verification stage after each transformation
in the optimization loop that is only run when assertions are enabled.

Change-Id: Iabcc6d4247205f6097e514d33a14bd4a1e9924a9