case-insensitive command matching

/Create = /CrEaTe = /create, etc
CommandManager now throws on unmatched command

b/c why should the chat room see invalid or mistyped commands?
InviteCommand now works with multiple users

like /invite user1 user2 user3 room
reverted unintended csproj commit
added braces around foreach
Merge branch 'handle-invalid-commands' into integrated
Merge branch 'multi-user-invite' into integrated