messageformatter.js support, fallback-to-msgid support, command line parsing

This PR includes 3 improvements:

## messageformatter.js support
`'format': 'mf'` means the json format used by messageFormatter in
github.com/SlexAxton/messageformat.js
This system does any pluralization within the string, so only msgstr[0]
is used with these format, in a simple "key": "value" form.

## fallback-to-msgid
If `fallback-to-msgid` is set, for those entries that would be omitted
(fuzzy entries without the fuzzy flag) and for those that are empty,
the msgid will be used as translation in the json file.
If the entry is plural, msgid_plural will be used for msgstr[1].
This means that this option makes sense only for those languages
that have nplurals=2.

## Command line parsing
po2json in command-line parametrization support added to allow override
default options.

 --pretty, -p: same as fuzzy = true in function options
 --fuzzy, -F:  same as pretty = true in function options
 --format, -f: Output format (jed, raw or mf)
 --domain, -d: same as domain in function options

input and output are passed the same way as before as positional
parameters.