Clean up command registration

In particular, stop using regexes as hash keys, I don't think I trust __eq__/__hash__ on those things. Also some assorted other cleanup to hopefully make it more stable.

Hopefully something here helps with #38?
Add stat=stat.lower() to everything

Previously it was only on the basic "!stat" command, not "!stat add" et al.

Closes #39