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
Add ConfigurationAwareProvider interface.

Providers implementing this interface get access to the
ConfigurationFactory during bootstrap phase, can consume properties
from the factory and build custom configured objects.
Add a config loader for the classpath.

Allows loading a properties object from the classpath and expose the
result as a Map suitable for a Configuration factory.

Also remove the private toMap() method from ConfigurationLoader (replaced with Guava code).
Use RollingFileAppender from Logback core for http request log