Implement VarargsCollector.asType() and related changes

This change:
- introduces AsTypeAdapter for performing pairwise conversions.
- drop use MethodHandle.nominalType and use AsTypeAdapter instead.
- fixes MethodHandle.invokeWithArguments().
- avoids calling into the runtime for every transformer invocation.
- adds some upstream MethodHandle tests.

Bug: 207844518
Test: art/test.py --host
Test: atest CtsLibcoreOjTestCases

Change-Id: Ibe7382e4900af1fd93f9b36b899e5ec1715abb57
9 files changed