XEP-0198: Let fsm_next_state/2 check timeout value

Don't force the fsm_next_state/2 caller to check for 'mgmt_timeout = 0'.
XEP-0198: Change state on gen_tcp:send/2 failure

When Stream Management is enabled and a gen_tcp:send/2 call fails, go
into the 'wait_for_resume' state immediately.  This makes sure that
gen_tcp:send/2 won't be called again, which might avoid an Erlang issue
where gen_tcp:send/2 apparently hangs despite 'send_timeout' (and
'send_timeout_close') being set.
Merge pull request #295 from weiss/xep-0198

XEP-0198: Change state immediately when gen_tcp:send/2 returns failure