Merge pull request #17 from tinystatemachine/master

Option to automatically kill nailguns before exiting
Release the lock before running tests.
Fix bug in dependency checking.

Auditors: markcc
Ignore .pids dirs.
Generate error for classes without package.

The implementation of zinc rebase/split/merge requires that all scala
source files have declared packages. In the current code, when a user
builds a scala source file without a package declaration, pants crashes
and dumps its stack with a "No such file or directory" error.

This change adds code to detect when a compilation produced a class
file without a package, and generates a comprehensible error message.

Auditors: benjy
Remove debugging print.
Remove temp analysis files.

Pants was leaving temporary analysis files, which was clogging up the
tmp directories on dev machines.

Auditors: benjy
Correct fix for undeleted analysis files.

In scala compilation, pants generated temporary files during
the process of merging, splitting, and rebasing analysis files.
These files weren't being cleaned up correctly.

This change fixes the two reasons for the lingering files:
(1) Zinc generates two kinds of analysis files: java serialization files,
  and textual relations files. In some operations, the serialization files
  were being cleaned up, but the textual relations files.
(2) In some cases, the automatic temp file cleanup used for
  removing the analysis files when they are no longer needed
  was disabled.

In manually observed test runs, no analysis files were left
after pants completed.

Auditors: benjy
Cc: tdyas
Merge branch 'zinc_tmp_cleanup'
Bugfix: Sometimes stack frame info will have no code context.
This release brings further work towards the new pants antless infrastructure
and many python and java library improvements from many new contributors.

Some noteworthy changes are highlighted below.

upgrades:
 + scala 2.9.2
 + guava 14.0.1
 + protobuf-2.4.1
 + lucene 4.1.0
 + gson 2.2.2
 + easymock 3.1
 + commons-codec 1.6
 + checkstyle 5.6
 + nailgun 0.9.1
 + spymemcached-2.8.1
 + joda-time-2.1

pants:
 + kill the pants ant backend
 + new metadata goals:
   depmap, dependencies, dependees, list, changed, filter, minimize
 + a plugin to handle thrift code generation using scrooge (supports 2.x and
   3.x series)
 + support for scaladoc gen via the renamed 'doc' goal (was 'javadoc')
 + antlr 3 & 4 support for java codegen
 + support for caliper benchmark targets
 + various *.md's filled out and corrected
 + improved multiplatform pex support: ./pants.multi and ./pants setup command
 + a concurrent junit runner upgrade
 + support for junit tests written in scala or java and marked via @RunWith
 + resources become first class targets
 + support for IDEA 12
 + upgrade jmake to get java 8 classfile support
 + optional support for pants usage logging to a remote service
 + python code coverage support
 + setup.py artifact exporting for python libraries
 + support zip64 for jars
 + eclipse goal configured java formatter fixes

python:
 + a versatile pex utility
 + a new jira library
 + many small imporvements to common.app and common.log
 + http support for common
 + EventMuxer added to common.concurrent to multiplex threading.Events along
   with several other concurrency utilities
 + RingBuffer added to common.collections
 + scribe support for common.log
 + hardening and improvement of common.zookeeper libs
 + a new common.net ssh tunnel helper
 + basic finagle client support

java:
 + a new concurrent junit runner that respects @TestParallel and @TestSerial
 + a much improved /graphview interface
 + many HTTP stack imporvements including a request logger
 + support for /pprof/heap (heapster) and /pprof/profile gperftools compatible
   endpoints
 + several improvements to common.{inject,quantity,stats,zookeeper}
 + glog support for log4j
 + a simple utility to unpack and link pre-compiled native libraries packaged
   in jars
 + added increment and group attribute support to TokenizedCharSequence
 + refactored common.text for performance optimizations and run-time
   configuration support
Fix missed merge - normalize the key BuildFile paths.