Add a compareMessages hook to the message model

So we don't make assumptions about receiveTime in the mock source. Although,
really, we're going to in lots of widgets.
Move notice to message conversion to a module

Inner demons want them too.
Pull in winchan
Fix SELECT DISTINCT nuisance with NULLs in loadActiveSubs
Import krb.Principal from Webathena
Import ASN.1 and krb5 structures from Webathena
Start of inner demon code

Totally untested and probably doesn't work. But I shouldn't have this much
uncommitted code at once.
CORS ALL THE THINGS
Stub out a little bit more of authentication

It still hard-codes me, but slightly less. ConnectionManager still has a
HACK_USER though; it doesn't look like you can authenticate in the initial
handshake?
Only restore public subs on startup

Personals we'll restore later when I get session serialization into libzephyr.
Until then the user'll have to login at some point. (Well, once the rest of
personals is even implemented.) Either way, there's nothing we can do without
creds.