Revert 'Revert "Re-enable integration tests that were disabled because of the inotify limit issue".'.

Summary:
This reverts commit 7722bb77a0154b8132bbd8c95415b504d24289c2.

yodawgiherdyoulikereverts

Test Plan: revert-hammer
Fix an accidentally MOE'd argument.

Summary:
I checked in non-MOE code that was using a MOE parameter. Move that parameter
out of the MOE block.

Test Plan: `buck test --all`
JavaDirectoryStep: only reset compressed size for deflated entries

Summary:
D984455 changed the ZipDirectoryStep to work around a rare bug which
caused zip exceptions when re-compressing the entry changed the
compressed size.  However, we should only do this for "deflated"
zip entries, as "stored" zip entries require the compressed size
to be equal to the uncompressed size (as documented at
http://docs.oracle.com/javase/7/docs/api/java/util/zip/ZipEntry.html#getCompressedSize()).

GitHub: fixes #132

Test Plan:
Built a java binary dependening on a prebuilt JAR with an embedded
JAR "stored" entry.
Properly quote variables in bash scripts

Summary:
This fixes one of the problems described in issue #38 on GitHub,
where a project directory with spaces was exposing a lot of misquoted
variables in our bash wrapper scripts.

GitHub: Fixes #38

Test Plan:
  mkdir "/var/tmp/path with spaces"
  cd "/var/tmp/path with spaces"
  touch .buckconfig
  touch BUCK
  buck targets
Set 'provided_deps' explicitly in the rule key.

Summary:
Bug description: https://github.com/facebook/buck/issues/133

Since we were not treating provided deps differently in the rule key, changing
a dependency from transitive to provided wouldn't change the java library's
rule key. This fixes it.

Closes #133 on github.

Test Plan: Integration test that fails without this fix.
Add helper methods for converting to/from posix permission bits

Summary:
This adds support for converting `Set<PosixFilePermission>` to/from
the typical unix octal bit representation (e.g. 0755), as well as a
helper function for intelligently adding in execute permissions to
a permissions set.

Test Plan: included unittests
Add Apache's commons-compress library to third-party

Summary:
This provides a zip archive extractor implementation which supports
some features that the built in one does not, namely support for
external attributes so we can preserve execute permissions in the
artifact cache.

(Note: this will and should *not* be used to replace our internal
implemenation for creating the zip archive).

Test Plan:
Ran builds with subsequent diffs that use this implemenatation in
`Unzip`.
Support artifacts with executable permissions in cache

Summary:
The zip implementation we currently use doesn't perserve the
executable permission bit set on artifacts.  As a result an
executable binaries we cache (e.g. PEX files, native binaries)
become un-exectuble when being served from the cache.

This diff makes a couple changes to add support for preserving
the execute permissions on artifacts:
1) The external attribute in the central directory is used by zip
to store OS-specific permission flags (e.g. the executable bit
in POSIX).  This diff adds support for this to the `CustomZipEntry`
object and exposes this via `EntryAccounting` so that it gets
written to the zip archive when present.
2) Switch the `ProjectFileSystem.createZip` method to use the
`CustomZipEntry` class (as `ZipEntry` doesn't support external attrs)
and load the file permissions when available.
3) Switch `Unzip.extractZipFile` to use apache-commons-compress to
extract the cached zip archive, which provides access to the
external attributes.  We then detect if the user execute perms were
set in the cache, and if so set execute permissions for any roles
(i.e. owner, group, others) that had read permissions.

Test Plan: included a test
genrule: Make deps to $(exe :foo) and $(location :bar) implicitly.

Summary:
We already have the `SourcePath` abstraction which implicitly adds deps to a
rule; this adds another abstraction for descriptions to randomly add deps from
the raw rule params on demand.

I feel like I could use a better name for the interface. Please suggest something.

Github:
Closes #128
Fixes #128

Test Plan: Integration test.
Add `resources` parameter to `PythonLibrary` rules

Summary:
As discussed in D1348830, there are some cyclical dep issues that
need to be resolved around resources before that diff can land.
This diff adds a no-op ##resources## parameter so that we can make
appropriate changes in our existing python library rules to avoid
breakages when D1348830 lands.

Test Plan: Built automation_instagram_debug with D1365842