Add ClassProvider to modularize runtime class loading routine

cts-signature-common.jar is used both in device and host (for its own
unit testing). This prevented us from using classes that are not
available to the hostside. e.g. DexFile.

To solve the problem, an abstract class ClassProvider is introduced,
which provides a generic interface for the common test routine and allows
us to have device and host-specific class loading routines at outside of
cts-signature-common.jar.

Test: cts/tests/signature/tests/run_unit_tests.sh
Test: cts-tradefed run cts --module CtsSystemCurrentApiSignatureTestCases
Both didn't show regression.

Change-Id: If211b04c6585e2a80c09f886a599cee135d822bd
8 files changed