feat(launcher): refactored classpath-entry API

- classpath entry of type :archive renamed to :lib, as the path can either
  denote an archive (zip/jar), or a classes directory
feat(generic-lein-launcher): ensure the project JVM is always killed

... even when Leiningen's JVM is killed brutally as via the Console Stop
button or a kill -9.

For this to work, and reliably across OSes, a trick is used involving
maintaining a TCP connection between the Leiningen JVM and the subprocess
JVM (and when the connection is broken, e.g. the Leiningen JVM is killed,
we force the subprocess JVM to shutdown).