use combinator parsers to allow more complex Map parsing

map arguments can now have complex keys or values:
 - maps are made of a sequence of key/value separated by commas `,`
 - keys are separated from values by columns `:`
 - keys and values can contain `:` or `,` but should then be quoted: `--maparg "key,foobar":"value:bar",key:value`