Better handling of archive resource URLs

Consolidates and documents existing code that handles resources that are either directory locations pointed to directly as a path or `file:///` URL, or are archives of various types. Will create a `.zip` or `.jar` archive from the directory, and copy to a remote machine. Suitable for use when populating the class path of a `VanillaJavaApp` or the static web content of `NginxController`. Consists of `ArchiveBuilder` helper class to create archivers easily, and `ArchiveUtils` to manage them.

Tests still need some more work before this can be merged, particularly validation using integration tests, and further consolidation is possible. Initial review comments would be appreciated beforehand, though.