Implement test suite initialization and termination
This patch adds test suite initialization and termination support to both
C/bash and Python implementations.
Any exported function in a test suite that starts with "mu_init" is used
as an initialization function (returning 0 if the initialization
succeeded) and any function starting with "mu_term" is used as
a termination function. If initialization fails (any initialization
funtion fails), the test suite is skipped.