Cast to number when creating literals from symbolizers

When parsing from some vector formats, we're not going to have any schema or typed data (e.g. KML) and will end up with all string attributes.  In order to use these attributes in symbolizers that need numeric values, we can cast to number when creating literals.

In addition, this adds a `concat` function that can be used to concatenate strings.  The `+` operator will still work, but the `concat` function can be used if a serialization format differentiates string concatenation from addition.