Fix arg handling (again) by moving everything into the parser.

This fixes cases like 'post --server foo' which caused an
array index error.