rave: Strict category backend checking and logging.

Backend registration and selection will now be restricted to the categories
listed in rave.backends.CATEGORIES. Since the module sets the selected backend
for each category as a property of rave.backends itself, allowing arbitary
backend categories may conflict with functions or constants, and doesn't provide
any meaningful functionality anyway.
rave: Moved source file encoding to constants and improved logging.