Reduction of escalus crashes.

Changes:
Catches all errors in connection step failures. So that any errors returned by start that aren't a connection step occurred in stopping escalus or starting it.
When starting the connection in bosh/tcp don't crash if we timeout on the connection, just stop nicely and let the thing calling start_link crash or handle the exception.
If received data  cannot be parsed don't just crash but instead carry on but report the error up to the process that started escalus. Perhaps it would be better to stop now since we assume the stream is corrupted.
Remove necessity to include the stream_features step, just always call it when starting the stream, mimic previous behaviour. (Bit nasty in respects of compatibility with escalus main but could remove that and change megaload behaviour in future if we are likely to merge back)

Potential further enhancements would be adding a timeout.