Use SIGALRM to fail tests that exceed a timeout.

Without this change, a failure of the 'zmq_subscribe' test to receive an
expected message would result in the test suite hanging indefinitely. With this
change, a maximum execution time can be specified. Individual tests which
exceed this limit are failed.

Change-Id: Ic63d89fd35dc229bc24344608af229c40d63704b