* Provide a flake, but support `nix-shell` using flake-compat
* Use `haskellPackages.developPackage` to call `cabal2nix` for us
* Fix a lot of cabal file bounds to bring it into the modern age
* Drop support for GHC <8.4.1 because I can't remember the right way
to write the conditional `semigroups` dependency
* Drop references to Freenode
* Clarify some documentation