Improve the performance of Annotation checks

In the circumstance where the annotated element (field/
method/constructor/class) was loaded from a different Dex file
than the annotation:

The previous code would perform a binary
search to determine the type ID of the annotation in the Dex
file of the annotated element. That type ID would then be
compared against the type IDs of annotations present on the
annotated element. The binary search was quite expensive: it
involved various indirections, many small native method calls
and temporary String creation.

Instead, the code now compares the names of the
annotations on the annotated element with the name of the
annotation being searched for. The name of the annotation
is known and cached on the class and is therefore cheap to
get. The name was previously being used to binary search for
the type ID so this appears to be no less correct.

Also removed some unused methods in order to delete the
getFieldIndex() method.

Change-Id: Ib8fb021ddf1221e3eac983aa87e7aea8174720ef
1.7 interoperability changes for FileLock

Adding acquiredBy(). This method is effectively a synonym for
channel().

Change-Id: Ifa0b89debb42a7181f1f5f188ae7175970286adb
Remove '.' from the System classpath for Android apps

When the Zygote is used, the java.class.path system property is
missing and so the System ClassLoader was being given the
default classpath of '.'. The meaning of '.' recently changed
from the app dir to '/'. Since any apps depending on this will
have broken with the '.' change, the System ClassLoader can be
changed to have an empty classpath, which is a more reasonable
choice.

Added documentation of this change inline. Fixed up some
long-standing commented code and removed a misleading JavaDoc
comment.

Change-Id: I64ac5a1edee118a6285df894d21f2ae3dc333408
Bug: 12491655
WIP: Use the DexCache strings cache more aggressively

Just an illustration of what using the dex cache for more string lookups might
look like. Although clearly it means quite a few more cache hits for the sample
app it doesn't make a massive performance difference (and increased usage of
the string cache may increase the memory footprint of ART / Dalvik).

Change-Id: I960bee2e060e5a71f462cf65c07f7655366870f9