Add Close function to close the database.
Change ChannelModes to be aware of UserModeKinds.

ChannelModes originally only looked at the CHANMODES from the prefix.
Unfortunately not all networks properly declare all modes so rather than
guessing that a mode is a user mode, we use the PREFIX to ensure that it
is a user mode. Unknown channel modes are just set as argumentless modes
as some sort of horrible default.

- Make ChannelModes more relaxed when dealing with modes it doesn't know
  about.
- Make apply actually pluck out UserModes properly instead of pretending
  it doesn't know about them.
- Removes the need for usermodekinds for the self modes, and relies
  completely on unknown modes since there is no argument user modes.
- Add a new simple example to the bot. Makes placeholder no longer the
  main file.
- Amend gitignore to exclude todo files, the new database files, and a
  hidden WAL file that corresponds to the default database name.