Finally solved Property deserialization issues in list

Property<?> was always being deserialized as
Property<Object> from inside a StandardPropertyList, and
we'd end up with inappropriate combinations like Double
values with Float value types, because Jackson always
deserializes real values to Double (or BigDecimal if
configured, but that's not useful here).

By using a custom deserializer, we can get around this. It
also ensures that we can control exactly what type of
Property<?> values we are willing to construct when we
get them over the wire from a remote clients.