Use `export' and `export-syntax' instead of
`define-public' and `defmacro-public'.
(make-thread): Rename first arg to `proc'; nfc.
(begin-thread, monitor): Rename second arg to `rest'; nfc.
(with-mutex): Rename second arg to `body'; nfc.
(make-thread, begin-handler): Use this handler. The most
important effect of this is that signals get unmasked.
Previously, when a signal was thrown signals remained masked
(signals get masked when a signal is taken) which influenced other
threads.