Parse command arguments using a decorator and make things more consistent

Avoid surprises with some commands accepting quoted arguments and some other
not.

fix #2555