JCLOUDS-74: Map Throwable causes to exit code

Many times callers propagate a checked exception within an unchecked
exception, usually via Throwables.propagate.  Call
getFirstThrowableOfType to map the exit code in this situation.