La interfaz es muy simple, y no es un ADT.
Los estados se identifican con un número entero (típicamente proveniente de
un enum).
- El usuario instancia un `struct state_machine'
- Describe la maquina de estados:
- describe el estado inicial en `initial'
- todos los posibles estados en `states' (el orden debe coincidir con
el identificador)
- describe la cantidad de estados en `states'.
Provee todas las funciones necesitadas en un `struct fd_handler'