Implement Executable.getParameters() to use compiled-in metadata

Implements the Executable.getParameters() code to take advantage of
.dex metadata that records parameter names and access flags / modifiers
(e.g. final, sythentic, mandated).

On Android, this metadata is stored in a new system annotation
dalvik.annotation.MethodParameters. See the MethodParameters class for
the specification. The metadata is optional and the intention is that
Jack or other compilers can include or exclude it based on developer
preference.

Contained here are various tests for valid and invalid metadata, along
with the supporting .smali files used to generate the .dex files
used by the tests. See the README.txt for more information on
generation.

See the associated art/ change for the native code used in Executable.

Bug: 30391692
Test: test-art-host and CtsLibcoreTestCases
Change-Id: Ied3d0f03bb6eb154b974a856b341bd14b5e45fc1
22 files changed