Terminate gracefully when version negotation fails

This PR prevents `SwitchHandler:terminate/2` from being called when the switch and the controller fail at negotiating which OpenFlow version to use.

#13 should not be closed yet since there are still more cases that may lead to unwanted calls to `SwitchHandler:terminate/2`.