Reverse the order of property transforms.

Previously, -p took the form source=target, mapping the input property named
"source" to the output property named "target". This was confusing because in
most programming languages, the equals operator (=) functions the other way,
copying the value of the right operand to the left operand. This commit changes
-p to the form target=source for consistency.

In addition, you can now coerce properties to numbers by prefixing the source
property name with a '+', similar to the --id-property. For example, -p bar=+FOO
will map the string property "FOO" to the number property "bar".
Join external properties to features.

Using the new -e (--external-properties) argument, you can now join a CSV or TSV
file of data to the topology as part of the conversion process. Each row in the
referenced DSV file is joined to the geometry objects in the generated topology
using the "id" attribute. This process happens after the generation of the
topology, and can thus the id of the geometry objects be configured using the
--id-property argument.

These external properties are transformed normally using the -p (--properties)
argument, and can thus be filtered and coerced to numbers as desired. Note that
by default, this means that any -e argument is ignored unless a -p argument is
also specified!