Add help output.  Do some minor cleanup
Pass a copy of msg to command callback to protect against modifications to msg
Add initial work on permission system.  May add support for groups later