[core] Add bitwise privilege tracking

Includes tracking who is in a channel and IRCv3 multi-prefix support.
I'm leaving #312 open, though, until I'm sure I like the way the API
for the new IRCv3 features works.
[rss] Fix missing import
[adminchannel, clock, radio] Use new channel privileges

Close #326
[docs] Deprecate old-style permissions stuff
[rss] Clean up setup function and RSS feed class

- Rename _RssFeed to RSSFeed
- Generate RSSFeed's attributes dynamically from a list
- Move table creation into its own function
[rss] Update SQL query substitution

- Replaced old-style string formatting with format() function
- SUB no longer needs to be stored in a tuple
[rss] Moved rss actions into their own functions

The .rss command now looks through a list of actions and calls the
corresponding function dynamically.

Also added 'clear' to the help text.
[rss] Moved start/stop commands into main rss command

.startrss is now .rss start
.startrss --stop is not .rss stop
- Removed the debug option; will fix those debug calls next
- Removed a couple other useless variables
- Swapped order of del/clear
- Removed priority import, since they're all in the same function now
[rss] Replace debug messages in read_feeds

- Now uses the built-in debug features exclusively. It's easier to just
have all debug messages go to the same debug_target instead of hacking
together our own half-assed debug system.
[rss] Allow dashes in feed names, add action docstrings, remove clear

- Realized that clear was actually redundant, so removed it
- Proper docstrings on all the rss actions, though there should probably
be a help action as well so they can be accessed from the chat
- Removed priority import, since everything's in one command now
[rss] Create an RSS manager class

Put all the rss functions into a class. This way we don't have to use
global variables like STOP and SUB.
[rss] Added fetch feature to pull all feeds manually.

Will run whether or not regular fetching has been started.
[rss] Changed some debug messages

- Nothing here is really a critical bug that needs to be more than a
warning, and some are just for info.
- Made error messages a bit more consistent.
- Disable feeds on parse errors or malformed XML.
[rss] Oops, forgot to remove clear from docstring and action list

Removed clear from docstring and action list.

Also prepended an underscore to the RSS methods since they are called
internally from the manage_rss method.
[rss] Added a help function

This function checks the given command against existing _rss methods,
and says the docstring of the method if it matches, or a default message
if it doesn't.
[rss] Replaced the toggle command with enable/disable

Probably anyone using this command will specifically want to enable or
disable a feed or feeds, rather than blindly set them to whatever they
were not.

Also fixed the regex in del and toggle to allow feed names with dashes.
[rss] List function now takes parameters

You can optionally specify a channel and/or feed name, and the list will
be filtered to show only matching feeds.
[rss] Added a private method to display a command's docstring

Eliminates a bit of redundancy. Also corrected a few errors in the
docstrings, which should be less frequent now that we're not repeating
them anywhere.
[core] Do not escape space in bot.join

Spaces aren't valid in channel names anyway, so we might as well do the
more convenient thing and treat everything after the space as a
password.
Fix issue #330
[core] Enable IPv6

This is the same as dee3c95 (#217), but without removing
`self.connect((host, port))`. It seems strange that we all would have
missed it, but so far re-doing this commit seems to be working in all
the ways it's supposed to.