Fix #610: Restructure classpaths for clean linking API

The new API allows for classpaths to be partially linked
(n.b. packageExternalDeps, this commit fixes #609).

Further, it introduces a canonical way to repsresent such classpaths
on the filesystem. This is mainly a preparation to support including
runner code in the packaged file.