feats_fix: fix crash when switch disconnects during handshake

The code previously assumed that a disconnect would only occur after a
successful handshake, and so would do a non-safe lookup of the switch id
for the given connection. When disconnects happen in the middle of the
handshake, this would crash the program.

The solution is to perform a safe check and update the platform state
depending on whether or not the switch handshake is done or not.
feats_fix: rename client_id to switch_id map

feats made no sense. (Probably a hold-over from when it was meant to
hold all switch features.) Renamed switches.
Merge pull request #115 from frenetic-lang/feats_fix

Fix disconnect handling