Supply temporary directory to genrule() invoked java_binary()

JVMs on UNIX systems typically hardcode to use /tmp as the default
temporary area, unless system property java.io.tmpdir is set on
the command line. Pass the genrule's TMP location to the binary
as a system property so it can be used automatically.
Supply temporary directory to java_test()

Similar to genrule() give the test running JVM a temporary directory
below buck-out that is uniquely named for this test target. Send
the path in by both the TMP environment variable and java.io.tmpdir
system property.

Fixes https://github.com/facebook/buck/issues/13
Fix flaky construction of genrule $SRCDIR

When the project root is initialized to "." the absolute paths for
genrule() srcs can be constructed as /Users/self/src/./path.  This
later confuses genrule when it looks for the prefix to strip when
creating the $SRCDIR, the canonical path of a source never contains
/./ as a component.
Allow system wide or user specific configurations

Add support for system and/or user specific configurations.  With this patch
applied it is possible to overwrite Buck's process JVM heap size:

  cat > $HOME/.buckrc <<EOF
  export BUCK_EXTRA_JAVA_ARGS="-XX:MaxPermSize=512m \
  -Xms8000m \
  -Xmx16000m"
  EOF