codec, xmpp: add and use codec implementation
xmpp: fix issue with Session's Conn() method docs

[ci skip]

Use the full name of an io.ReadWriter
xmpp: fix mistake in NewSession docs

[ci skip]

New session takes an io.ReadWriter, not an io.ReadWriteCloser. It will
not close the underlying connection for you.
stream: rename StreamError to Error
stream: rename streamerror package to stream
xmpp: rename some vars (stream → streamData)

[ci skip]

This is in preparation for a package rename; I wanted to make sure no
variables end up shadowing the package.
xmpp: rename stream to streamInfo
internal/ns: move ns package to internal/ns
xmpp: update docs

[ci skip]
Return from handler after sending error
Rework handler API

Also move the handler off the config, which made no sense and remove
concurrency that should not be hidden from the user.
ci: Cache deps for faster builds

Always build/test with latest Go version
Remove invalid session tests
Remove broken stanza correctness enforcement

I'm not sure where this will go yet; maybe on a new "Client" type
(*sigh*)? It needs to work differently either way.
Comment wrapping / shadowing consistency tweaks

[ci skip]
Fix dial to use internal lookup functions
Move BOSH/WS lookups to internal temporarily
jid: add a few new benchmarks
Remove unused build and dump env in CI
Don't test coverage on benchmarks
jid: alloc test broken by coverage instrumentation