Issue 65

Fixes #65

It was already fixed with #100 but I took the chance to a little bit of refactoring and tests

I think we sould be defensive in commands to avoid that some invalid argument splits into the business logic (aka request, response, ecc...)

`sanitize_arguments` must be used by every command to escape, chop, normalise all arguments before those arguments are used to created the command and possibly raise an exception or a warning

Moreover, this method is easily unit-testable and it should be since most of the issues could be related with input sanitation and validation

What do you think @njonsson