Allow --id-property and --properties expressions.

You can now use JavaScript expressions to more flexibly define how ids and
properties are computed. This is an expansion on the previous support for
coercing numeric ids (`+foo`). For example, to concatenate the string properties
foo and bar into baz, you can say `-p baz=foo+bar`. Similarly, to define the id
as the last five characters of foo, say `--id-property='foo.slice(-5)'`.

Generally, -p expressions should be combined with an explicit target name, of
the form `-p target=source`, which target is the name of the output property,
and source is the JavaScript expression to compute the value of the output
property from the source properties. For backwards-compatibility, expressions of
the form `+name` imply a target name of “name”. However, note that this does not
apply to other expressions, such as `name+""`; to coerce to a string, you’d want
to say `name=name+""`.

Fixes #107.