An Arduino library for implementing Finite State Machines (FSM), driven by events, configured transitions and action callbacks