make ShutdownSignalException.reason a Method
...rather than a Method, or a Command, or an Exception, or a String,
or a unicorn

Also, make AlreadyClosedException really be a ShutdownSignalException,
containing the same information.
take advantage of better API to simplify test/example code
merge bug25663 into default
merge heads