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.
A RunInfo file.

This is a small textfile-backed data structure containing info
about a pants run, such as the timestamp, commit sha etc.

This supercedes the mostly unused BuildInfo functionality, which was
removed, to avoid confusion.

Auditors: markcc
Attempt #2 at proper multiplatform distillation for pants.pex.
Ensure an ensemble expands to a unique set of ips.
Code to track pants timings and artifact cache hits/misses.

Auditors: markcc
Fix minor bug in RunInfo.
Read-write buffers.

Allows pants to gather the stdout/stderr of running subprocesses.

Auditors: markcc
Merge pull request #138 from jsirois/jsirois/zk/ensure_unique_ips

Ensure an ensemble expands to a unique set of ips.
Use an older 10 series mactel platform for maximum compatibility.
Fixup SourceTranslator to refuse translation for anything but the current platform and python.
Turn on verbose mode for common:all tests.
Fixup Scm and its test.

Support environments like travis-ci with no proper user config:
  setup a repo identity in test
Fixup _get_remote implementation (kill quoting) and test.
Merge pull request #137 from jsirois/jsirois/open_multiplatform

Rig up multi-platform pants.pex in the open as a stop-gap