Fixed buck not being aware of alternate google API directory names

Summary:
Updating Android SDK can lead to having Google APIs in a
directory suffixed with "-1" (and, this diff assumes, -2, -3, etc).
So check directories with those suffixes before giving up on finding the
Google APIs.

Fixes github issue: https://github.com/facebook/buck/issues/105

Test Plan:
Append "-1" to your
"$ANDROID_SDK/add-ons/addon-google_apis-google-19" and verify the build
still works.

Unit test
Use `Path` to represent path to `aapt` executable.

Summary: I will be sending diffs to convert other fields to `Path` as well.

Test Plan: buck test --all
Use Paths everywhere in AndroidPlatformTarget

Test Plan: buck test --all
[buck] unfreeze project_config

Summary: Addresses concern raised in D1306674

Test Plan: `./soyweb-local.sh`
Build the user specified targets, not just the ones w/o incoming edges.

Summary:
I am working on some changes that could result in a disconnected
`DependencyGraph` such that some of the connected subgraphs should not be built.

Currently, we build all nodes in the graph with no incoming edges, which has the
side effect of building all nodes in the graph.

This diff changes things so that we only build the rules (and their transitive deps)
specified by the user. This way, disconnected subgraphs will not be built.

Test Plan: Sandcastle builds.