Add new check: time out on connectivity
Revert "Use shell=True with popen_filtered"

This reverts commit 714b5797262a1866fda1ca24f495798a667fc1e7.

Using 'shell=True' leads to controllers not being killed correctly by
STS. This can lead to errors with MCS etc.

Code that relies on shell expressions should use something along the
lines of
/bin/bash -c 'if [ $all_ok ]; then exec ./controller; fi '

Note the 'exec': It is important that the main controller process
is spawned as the primary executable.
SyncTime: enforce strict monotonic ordering of SyncTime.now()
openflow_buffer: correct message ordering with pass through

also, record message time stamp on enqueue not on pull
Less broadcasted packets
interactive: fix causality between logging + execution of events
Always log events before ijecting them
interactive: fix event ordering issue with dataplane permits
Fix more problems in logging before injecting
Hopefully last bug in event ordering
Set pass_thru_whitlisted=False, since it seems to be problematic
Set pass_through_whitelisted=False by default in ctors
More defaults
Default to persistent = True
Fix bug in when we dump intermediate mcs'es
Include MCS size as a column
Account for multiple replays per subsequence
Don't crash if controller is down during switch recovery
Don't crash if controllers are down when recovering swithces
There may be multiple recoveries after a failure input, if a a switch was
unable to reconnect to the switch