RmStep should resolve path passed to rm.

Summary: We need to do this so that RmStep works properly in integration tests.

Test Plan: Sandcastle builds.
getExecutableCommand() should take a ProjectFilesystem.

Summary:
To create the command to execute, a BuildRule often needs
to relativize a path or two.

This also allows us to remove `Functions.RELATIVE_TO_ABSOLUTE_PATH`.

Test Plan: Sandcastle builds.
Introduce sh_binary rule.

Summary:
An sh_binary can be used to create an executable based on a shell
script that can be invoked from a genrule. As illustrated in the
integration test, this could be used to create an sh_binary that
runs Node, using a shell script that detects the appropriate platform
and then chooses the corresponding Node binary to use.

The output of an sh_binary is a shell script that runs the
user's shell script in a tmp directory, which ensures that only
the resources declared as inputs to the sh_binary are accessible
to the user's shell script.

This is the first BuildRule that promotes the use of Path
instead of a raw String (which is why KeystoreBuildRuleFactory
is touched as part of this diff). This definitely simplifies things,
so we will have to expand some of our existing utility methods
(particularly those of ProjectFilesystem) to work with Path
going forward, ultimately deprecating the use of raw Strings.

Test Plan:
This diff does not contain any unit tests; however, here are the code coverage numbers from the two integration tests:

```
86% (30/35) GenerateShellScriptStep.java
100% (5/5) ShBinaryBuildRuleFactory.java
100% (23/23) ShBinaryRule.java
```

The unexercised lines in `GenerateShellScriptStep.java` are correspond to `IOException`s and precondition failures that I cannot reproduce unless I mock out a flaky filesystem.
Make it possible to specify a post-processing script for `buck project`.

Summary:
Unfortunately, `buck project` is not perfect, so we make it possible
for a user to add his own post-process script that runs after the
IntelliJ configuration files are generated. Also updated public docs.