cleanup service, exception fix, ...

Changes to support commit e32b78d9c11753ef8fc05cf610526d824b75a5b5 in the
MAS/finance app:

Added io_exception to the list of exceptions to not
terminate on (in EXCEPTION_SERVICES).  And added some error logic to
support the use case of error occurs but process keeps going.

Big fix in IO_BASED_CLIENT_REQUEST_COMMAND.warn_client: warning code could
be a non-number, which violates a report_error precondition - fixed by
calling warning_code.adjust_right.

Created a simple register_for_cleanup (subscriber/observer pattern)
mechanism (similar to the CLEANUP_SERVICES/TERMINABLE mechanism, but local
to the CLEANUP_SERVICE object - i.e., not using a global 'once' routine)
for cleanup at appropriate times - used by MA_SERVER.post_listen to cleanup
expired sockets/poll_commands.