Update Eclipse configuration to use annotation processors.

Test Plan: `com.facebook.buck.immutables.TypeTest` now builds and runs in Eclipse.
Remove uses of PartialGraph in AuditClasspathCommand.

Summary:
Most uses of PartialGraph are to construct a graph using its very
complex factory methods. Those that do use its concept of root
targets have access to the targets through other means. Even if
they didn't, the root targets of a graph are the nodes without any
incoming edges, because if they weren't root targets and didn't
have any incoming edges they wouldn't be in the graph.

This removes uses of PartialGraph in AuditClasspathCommand.

Test Plan: CI
Remove uses of PartialGraph in TargetsCommand.

Summary:
Most uses of PartialGraph are to construct a graph using its very
complex factory methods. Those that do use its concept of root
targets have access to the targets through other means. Even if
they didn't, the root targets of a graph are the nodes without any
incoming edges, because if they weren't root targets and didn't
have any incoming edges they wouldn't be in the graph.

This removes uses of PartialGraph in TargetsCommand.

Test Plan: CI
Make some logging more consistent.

Test Plan: Buildbot.
Switch from ConsoleEvent to proper logs in ExopackageInstaller

Summary: These were never shown to users.  They were just for my testing.

Test Plan: Did a build.  Saw logs.
Clean up a log message

Summary: The trailing CRLF looked ugly in the log.

Test Plan: Log looked nicer.
Move static methods in ExopackageInstaller to the end of the file

Summary: This will make an upcoming diff easier to read.

Test Plan: Buildbot.
Support multi-device install for exopackages

Summary:
Most functionality (including all non-final fields) has been moved into
a private inner class that is instantiated per-device.  An AtomicInteger
is used to allocate a separate port number per-device.  Static methods
were not moved to allow for testing, and because inner classes cannot
have static methods.

Test Plan:
Ran a -x install on 2 devices and 2 emulators (all at once).  All were
updated properly.  All installations showed up in the trace and the log,
though without identifiers for which was which.  Initially, I forgot to
move nativeAgentPath to the inner class, and I got a failure because it
was different on the different devices.  The exception properly showed
the id of the failed device.
Give a nice warning if removeForward fails in exopackage installation

Summary:
We get reports of this exception from time to time, but I've never been
able to reproduce it.  Provide a less scary warning.

Test Plan:
Used reflection to throw a bogus AdbCommandRejectedException.  Saw a
nice message on the console and in the logs.
Make ExopackageInstaller handle agent downgrades

Summary: To be safe, we always uninstall before installing a new agent.

Test Plan:
- Installed an agent apk with version 4 onto a device.
- Without this change, failed to install an exopackage.
- With this change, it installed and I could see the uninstall in the
  trace.
- Installed again and didn't see it wasting time reinstalling the agent.
Fix Exopackage on Lollipop

Summary:
- APKs are stored at a slightly different path.
- Native libraries are given a different name in dumpsys output.
- Native libraries are stored in a different place, but this doesn't
  affect us right now because we don't use the native agent on Lollipop.

Test Plan: Installed an exopackage on Lollipop and Jellybean.
Don't warn when installing onto a CyanogenMod device

Summary:
CyanogenMod uses busybox for ls, which has a different output format.
Match that and don't warn about it.

Test Plan: Installed on a CyanogenMod device and a normal device.
Update the default ant target to build everything needed to compile code in an IDE

Summary: Just like it says on the tin.

Test Plan:
ant clean default
Open project in IDE.
Remove docs that said exopackage doesn't work with "-x"

Summary: Forgot to include this in the diff that made it work.

Test Plan: Nope.
Remove uses of PartialGraph in TestCommand.

Summary:
Most uses of PartialGraph are to construct a graph using its very
complex factory methods. Those that do use its concept of root
targets have access to the targets through other means. Even if
they didn't, the root targets of a graph are the nodes without any
incoming edges, because if they weren't root targets and didn't
have any incoming edges they wouldn't be in the graph.

This removes uses of PartialGraph in TestCommand.

Test Plan: CI
Fix lint failure.

Test Plan: ant lint
Do not include *.orig files in the rule key of android_resource rules.

Summary: I am wondering if I should exclude *.orig files for _all_ the rules.

Test Plan: Updated unit test
Fix `buck test //path/to/something` on Windows

Summary:
Currently, everything fails with "test existed before generating
results file", but we are at least loading the classes now, and
not saying saying all tests passed.

Test Plan: `python .\bin\buck test //test/com/facebook/buck/android:android`
Move AndroidBinary.copyNativeLibrary() method to CopyNativeLibraries.

Summary: In a subsequent diff, `CopyNativeLibraries` will become a build rule.

Test Plan: Unit tests.
Remove uses of PartialGraph in AuditInputCommand.

Summary:
Most uses of PartialGraph are to construct a graph using its very
complex factory methods. Those that do use its concept of root
targets have access to the targets through other means. Even if
they didn't, the root targets of a graph are the nodes without any
incoming edges, because if they weren't root targets and didn't
have any incoming edges they wouldn't be in the graph.

This removes uses of PartialGraph in AuditInputCommand.

Test Plan: CI