Prevent modification to nested property maps

For consideration. I don't know if this is actually the route CBL should go in, but it's a possibility. This does introduce some map copying in `getProperties`, making it more expensive, but only in the case when there are nested maps.

See couchbase/couchbase-lite-java-core#226.