Renamed e3_hsm_init() to e3_hsm_create() and added e3_hsm_delete(). The delete method will exit each state until the current state is NULL. This has been added as a convenience feature similar to destructors.
Modified Makefile so that the CCFLAGS are only applied to the 'coverage' target. Also changed from 'cc' to 'gcc' to support Mac OSX. Created INVALID_STATE and ANCESTRY_NONE macros in e3-hsm.c to remove magic numbers.