abdi_processrepoarglist: fix releasing semaphore

Fix the _worker_wrapper to release the semaphore even in the presence of
an uncaught exception by using a 'finally' block. Otherwise the main
thread may hang forever, waiting for the thread to finish.

Test Plan:
$ ./precommit.sh

.. introduce exception in _worker() ..
$ ./proto/arcyd-tester
.. observe that it doesn't hang forever ..
abdt_exhandlers: fix to catch errors when mailing

Handle any exceptions raised when trying to mail admins about
exceptions. Log them as errors.

Test Plan:
$ ./precommit.sh

.. introduce exception when processing repos ..
$ ./proto/arcyd-tester
.. observe error when trying to send mail ..
TEMP: 5 workers