FSM patch

Fixed problems with the FSM.
Improved the FSM structure by forcing derived classes to set IDs via
constructor.
Renamed instances / classes "Screen(s)" to "State(s)" for consistency
purposes.