Protecting margo timers
In margo-timer.c, the static structures are not protected:
static int timer_inst_table_size = 0;
static struct margo_timer_instance *timer_inst_table[MAX_TIMER_INSTANCES] = {NULL};
This can lead to data race if multiple ES try to create a timer at the same time. We should also get rid of this hard-coded limitation MAX_TIMER_INSTANCES.