New command parser

Parameters are comma-separated and \ (backslash) is the escape
character.

E.g. if you input:
/msg @Username, Hello\\, world!
it would return the following object:
{ command: '/msg', params: [ '@Username', 'Hello, world!' ] }