* feat: harden encoding/decoding functions against panics
Part of https://github.com/libp2p/go-libp2p/issues/1389
These kinds of functions:
1. Handle user input.
2. Often have out-of-bounds, null pointer, etc bugs.
3. Have completely isolated logic where local panics are unlikely to
cause memory corruption elsewhere.
* test: add a panic catcher test
* bump go.mod to Go 1.16 and run go fix
* run go mod tidy
* run gofmt -s
* update .github/workflows/automerge.yml
* update .github/workflows/go-test.yml
* update .github/workflows/go-check.yml
Co-authored-by: web3-bot <web3-bot@users.noreply.github.com>