Db services

I started implementing DB services (either DataBase or Desert Bus, your pick). I made a generic subclass of Service that things can inherit from, then used that to create BidServ in its entirely. I copied the needed commands and behaviour from master branch.
Note that this branch is based on the services branch, for obvious reasons.
This stuff is not properly tested yet, and should not be considered pull-ready. But I thought I might as well start getting feedback.
I'm still not convinced the core is the right place for this.  It makes more assumptions than the amount with which I'm comfortable for core code, including the existence of the `PRIVMSG` and `NOTICE` command (the core shouldn't be doing anything with commands, no matter how RFC-required they are or how many command sends I mucked into the core of 0.2) and handling for opers (the core also shouldn't be doing any special handling for opers, a mechanism the core doesn't even need to know about--and it otherwise currently doesn't), let alone specifics of command implementations (like that sending a message through the MessageCommands module will use the "sourceuser" key).

I'm fine with the rest of the file (other than other comments), if you want to move it wholesale to modules as a library function for other modules.  If nothing implements `IPlugin` and `IModuleData`, it will never be loaded.  (When using it, regardless of subdirectories, it'll always be in `txircd.modules`.)