~samwhited/xmpp

disco: add XEP-0030 support

[ci skip]
mux: add IQ matcher

Adding a separate IQ muxer to the mux package will allow us to easily
match based on the payload of an IQ without requiring special handling
in the standard muxer.

See https://mellium.im/design/18_iqmux

Fixes #18
mux: return wildcard handlers from Handler method

Previously the Handler method would only return a handler if an exact
match for the name was found, and would otherwise return the fallback
handler. This change moves the logic for selecting wildcard handlers
into Handler so that what Handler returns is always what would be
selected if an incoming payload matching the name were handed to
HandleXMPP.
design: accept iqmux proposal
mux: remove warning in package docs

While this package isn't guaranteed to be stable until 1.0, it's been in
here long enough that I think it's time to remove the explicit warning.
The package will still change, but we don't need to scare away the early
adopters of this module.
design: fix whitespace in markdown docs

Previously there was no line break between the status and discussion
lines.
design: rename documents based on issue number

Also add a link to the issue in the docs to make going back and forth
between the document and the discussion simpler.
design: answer a question in iqmux proposal

Update the IQ mux proposal to make it clear that Error and Result type
IQs are also handled by the multiplexer, and add some shortcut functions
for handling them in a reasonable way.
design: rename iqmux proposal

Previously the file had a .txt extension but it is a markdown file.
Changing to a .md extension will allow renderers to show formatting
properly.
design: add iqmux proposal
all: update changelog with unreleased section

From now on I will try to keep the changelog up to date instead of
updating it only when a release happens so that users can get an
overview of what is different on master.
all: add chat badge to the readme

Add a link to the general Go chat room on my server which can serve as
a support channel until I get the new system setup.
design: shorten filename of IBB proposal

This change also fixes some minor whitespace issues (it removes two
excessive lines).
all: update godoc link in readme

Update the documentation links and badges in the readme to point to
pkg.go.dev since godoc will shortly redirect there anyways and most
users are likely using Go Modules at this point anyways so pkg.go.dev
will show the version that will be selected for them instead of the
latest commit on master.
all: mention examples in readme

Mention the examples in the readme to help new users get started, also
clean up some minor inaccuracies in other parts of the readme.
all: add review section to contributing doc

Adds a section about code review to the contributing docs and also makes
several minor changes to other sections that were left out of the last
update. The goal of this change is to ensure that new contributors
aren't suprised by our code review process which may require more
changes than they're used to.
all: drop support for Go versions below 1.13

Fixes #3
examples/im: new example similar to sendxmpp(1)
all: update the code of conduct

This updates the code of conduct to be based on version 2.0 of the
Contributor Covenant
(https://www.contributor-covenant.org/version/2/0/code_of_conduct.html).
all: update the contribution guidelines

The previous guidelines were rather sparse and did not provide much
guidance for how to get a contribution accepted. By improving them we
can hopefully avoid contributors being frustrated by requirements that
seem opaque or arbitrary.
design: add proposal for XEP-0047
Next