Delegate to jmx agent in jdk instead of using a custom one

The JDK agent has a mechanism for registering itself with the JVM
instrumentation buffer, which is required for proper integration
with jstatd and supporting VisualGC when connecting to the the process
from VisualVM
Remove spurious import
Add additional Logger methods for literal messages
Switch from MeterStat to DistributionStat
Create TimeStat, based on QuantileDigest
Rewrite launcher in Python

The new launcher has several improvements:

* Use Python 2.4+, which should allow it to work on any system
  without requiring anything except Java to be installed.
* Eliminate issues with stale pid files by using inheritable
  file locks to verify that the process is still running.
* Dynamically set the classpath to everything in the lib directory
  rather than using the manifest classpath. This makes it easy to
  include additional jars containing drivers, plugins, etc.
  Additionally, tools like jps will show the class name rather
  than the path to the jar file.
* Split logging into a launcher log and server log. The stdout and
  stderr for the process are redirected to the launcher log,
  allowing messages from the JVM to be logged. The application
  itself will log to the server log.
Set process name on Linux
Add Closeables to testing module
Add copy constructor to Distribution