Add superclass support to Lint

This changeset adds a preprocessing state to the class handling.

Instead of processing each class sequentially, all the class byte
arrays are read in first, and then a lightweight class visitor
(skipping methods and debug symbols) skims through all the classes to
build up a superclass map up front.

The byte arrays are then processed sequentially as before, but the
detectors can now query the lint driver for class hierarchies.

A couple of lint checks are now taking advantage of this. For
eexample, the API checker can properly handle virtual methods where a
local class extends some other local (or library) class which
eventually extends an Android API class. (Until this checkin, only
classes directly extending an Android API class were supported).

Change-Id: I972172a61268dd2530979a93b2f289c1dcf94d63
16 files changed