Extract stream features

Split `start_stream` connection step into two:
- one sending and receiving the `<stream:stream>` elements,
- another receiving `<stream:features>`.

This allows to plug into the connection process just after establishing the stream, e.g. for inspecting the raw features returned by the server inside a testcase.

This builds on top of #36, so please look into it first.