Enumize resource and id types in a R.txt entry.

Test Plan: buck test --all
Delete bin/buck_common bash script.

Summary: RIP. Hopefully for good this time.

Test Plan: Dead code.
Ensure xcode_native dependencies are linked in to binary

Summary:
To refer to libraries built by existing Xcode projects, we
use the 'xcode_native' rule type. It correctly expresses the
dependencies, but binary and test rules which depended on xcode_native
rules were not actually linking the library into the final result,
which meant we had to hard-code linking them in via the BUCK file.

This fixes the bug and adds a test.

Test Plan: Added test. It failed. Applied fix, test no longer failed.
While checking if buckd is running, also check if the port is being listened on.

Summary:
This is obviously suboptimal, because just as some other process could claim
the same PID, another process could be listening on the exact same port.
But the chances of that happening are somewhat lesser.

Test Plan:
```
$ buckd
$ echo 11111 > .buckd/buckd.port
$ buck
// Notice no more "connection refused" error.
```
[iOS] Add optional parameters header_path_prefix and use_buck_header_maps

Summary:
The first parameter is meant to specify a custom prefix for subsequent
library-style imports `#import <PREFIX/foo.h>`.  The default value is
the name of the BUCK target, but some projects use different targets to
generate "flavors" of a same library. The equivalent information is
currently in pieces of xcconfig embedded in BUCK files.

In a next diff I use this new field to set the Xcode build param
PUBLIC_HEADERS_FOLDER_PATH to ../Headers/PREFIX. Another diff will use
the second parameter to generate header maps with Buck.

Test Plan: buildbot
[iOS] Use the new field header_path_prefix to set PUBLIC_HEADERS_FOLDER_PATH

Test Plan: test included
Tweak test coverage report, include untested LOC per package

Summary: Add field to indicate how many untested LOC each package
contains. Remove COMPLEXITY coverage type from report to make space for
it.

Test Plan: Run tests and run the script, compare results to the previous
version
thrift_library outputs a jar

Test Plan: Unit test ThriftIntegrationTest checks for generated java
file and .jar
Easy: Add verbose logging to diagnose ProjectGenerator bugs

Summary:
Scott Wolchok reported a nasty bug in ProjectGenerator.
I added verbose logs to figure out what was going on.

Test Plan: ant
Fix flipped Boolean logic in SourceTreePath.equals()

Summary:
I got a report that ProjectGenerator was missing some files.
With the logging in D1495765, I noticed PBXFileReference objects
were being re-used for two SourceTreePaths.

I tracked this down to SourceTreePath.equals() having a flipped
Boolean operator. I wrote a test to confirm it was broken, and
fixing the operator fixed the test as well as the missing files
from ProjectGenerator.

Test Plan:
Unit test included. Ran 'buck project' to generate Xcode
project, confirmed missing files were generated.
Add the ability to configure libthrift for JavaThriftLibrary in .buckConfig

Summary: Generated java thrift files depend on libthrift (which also
depends on slf4j as an exported dep).  Add the ability to specify the
libthrift to be used for the java flavor of the thrift library so that
source can be compiled.

Test Plan: Test runs, use it to compile java thrift_libaries
Fix a linting error. No logical changes.

Summary: Nothing more and nothing less than fixing a lint error.

Test Plan: ant pre-checkin
Make the Unzip utility class use Paths.

Summary: We use Path to represent a path, not String.

Test Plan: buck test --all
WinCompat: Don't shell out for UnzipStep

Summary:
We have a perfectly serviceable utility class for this kind of thing. Use
that in preference of shelling out to actually unzip files.

Test Plan: buck test --all
Lower logging level for skipping files in JarDirectoryStep

Summary: JavaBinaryDescriptions explicitly use blacklist so we don't
need to print out the fact that we're skipping files each time.

Test Plan: Tests run
Add support to XcodeNative for custom target and buildable names

Summary:
Previously, XcodeNative assumed that the target name
was the same as the rule name, and the buildable name was always
"lib[rulename].a".

This isn't true for all native Xcode projects, so this diff
adds the ability to customize the target and buildable name.

Test Plan:
Unit test included for project generation.
Workspace generation unit tests pending #4783327; tested
by running 'buck project --workspace-and-projects //path/to/target:workspace'
for a workspace containing references to xcode_native targets
with custom library names.
Allow the classloader used by annotation processors to be garbage collected early.

Summary:
There are reports of large, complex builds using lots of annotation processors
running out of PermGen space on Java 7. The incidence of this increased markedly
after the introduction of the classloader used for loading annotation processors.
I suspect that _something_ is holding a reference to the Step which, in turn, is
holding one to the classloader, which could get pretty big.

As an interim measure, we'll null out the classloader after compilation is
finished. My experiments suggests that this remedies the problem. For now....

Test Plan:
Run a large build that exhausts PermGen without this patch
Watch it fail
Apply diff and run the build
Gasp in amazement as it passes
Fix minor bug in missing symbol finder

Summary:
The missing java symbol support, which hunts down rules that resolve
missing symbol errors in java, parses BUCK up the dir tree in an effort
to find the owners of sources.  It determines that a file is a BUCK file
by checking that it's basename is BUCK.  However, it's possible that
the user has a directory by this name, and this is even more likely
on case-insensitive filesystems where a directory called "buck" would
be mistaken for a BUCK file and parsed, resulting in an ugly parse
error.

This diff changes the code to check that the given path is a file
to avoid this.

Test Plan:
Removed some needed deps in test code and ran ##buck test --all##.
Easy bonus refactor diff -- add new enumerations

Summary: New enumeration values we'll need for the final changes to
ProjectGenerator.
Add AppleExtension rule

Summary:
This adds the "apple extension" rule. These are bundles that get
`.appex` extensions instead of `.app` extensions and get embedded in
other bundles.

In the future this can get refactored into a generic "bundle" rule that
takes the app extension as a parameter, but because I move at a snail's
pace in the Buck codebase, in the interest of unblocking iOS 8 Share
Extension work, and a little bit of YAGNI I'm committing this as-is
(@coneko's original design).