Fix DefaultJavaLibraryRule.getAbiKeyForDeps() so it works in the presence of export_deps=True.

Test Plan: Integration test to ensure export_deps is handled correctly by the ABI logic.
Add a TargetDevice to support targeting devices.

Summary: It's useful to be able to indicate to tests that are running which android device to use.

Test Plan:
buck test --all
Run existing end to end android tests.
Only reconstruct BuildFileTree when BUCK files are added or deleted.

Summary:
Reconstructing BuildFileTrees walks the file system and so should only
be done when BUCK files are added or removed, not on other file system
changes.

Test Plan: buck test --all and multiple buckd builds on ubuntu