rename to dengg
complete FSM
add testing
don't want to run unittests every compilation
Big changes to FSM.

State:
- Add default constructor.
- Add `bindMachine` to allow machine-less states.
- Add null check in `transition`.
- Commented.

FSM:
- Remove `addAcceptState`; add `accept` parameter to `addState` and
  `addStartState`.
- Add `removeState`.
- Change `reset` behavior slightly: move some work to `begin`.
- Add null checks in `transition`.
- Add `configured`.
- Commented.