Command parsing

New command parser using regular expressions.

Closes #5 and related to issue #7.

This whole block should be replace by something like

matchedText = next((k,v) for (k,v) in match.groupdict().iteritems() if v is not None)
unfolded_arguments.append(argumentTypes[matchedText[0]].unfold(matchedText[1]))