7047961: JSR 292 MethodHandleWalk swap args doesn't handle T_LONG and T_DOUBLE properly
Reviewed-by: kvn, jrose
Several more errors were found with handling op arguments in
MethodHandleWalk. swap wasn't dealing with the double word arguments
properly. collect and fold are allowed to have 0 length operations.
rotate was using the wrong type to determine the size of the
operation. boxing operations are allowed on subword types. nop
conversion operations should just do nothing. I also removed the
SlotState wrapper since its only purpose seemed to be to keep track of
the arg types when symbolic was used and I modified tt_symbolic to
keep accurate track of the type instead of claiming to be a long. I
also added more detail to most of the failure messages and fixed a
missing ResourceMark along with adding a lot more sanity checks.
Tested with vm/mlvm and java/lang/invoke regression tests.