Shell: Stop building an uberjar for CRaSH

This patch removes the complicated build we had for CRaSH which created an
uberjar. Dependencies are copied using the build module's FileMap.

The crash jar is also placed in its own classpath, before the other library
jars because our class overrides one of CRaSH's internal classes which is
loaded with ServiceLoader.

Signed-off-by: Or Cohen <orc@fewbytes.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Shell: Provide our own version of CRaSH bootstrap

Default CRaSH bootstrap looks for commands under /crash/commands path. This
value is hard-coded and cannot be changed. Luckily enough, the entire class is
being loaded in a pluggable way.

This patch is this kind of plugin, only with OSv's own command path.

Signed-off-by: Or Cohen <orc@fewbytes.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Shell: Created shared command option annotations

Some commands share the same options/arguments, re-use them.

Signed-off-by: Or Cohen <orc@fewbytes.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Shell: Modify free command to use shared options

Signed-off-by: Or Cohen <orc@fewbytes.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Shell: Add help and man commands

Changing the command path to our own hides these commands. This brings them
back.

Signed-off-by: Or Cohen <orc@fewbytes.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Shell: Remove top

This top command listed JVM threads, so when used as a global command in
a standalone shell (OSv) it's confusing. Removing it. The functionality will be
in `jvm top`

Signed-off-by: Or Cohen <orc@fewbytes.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
Shell: Import jvm command from CRaSH

Import the original jvm command and adjust it to our needs.

Signed-off-by: Or Cohen <orc@fewbytes.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>