Deeper coerce for strings

FIxes a bug with the strings option, where strings doesn't coerce the nested data structure. 

Before:
```clojure
user> (-> (coerce {:a {"b" {:c 1}}} {:strings #{"b"}}) :a type))
com.mongodb.BasicDBObject
```

After:
```clojure
user> (-> (coerce {:a {"b" {:c 1}}} {:strings #{"b"}}) :a type))
clojure.lang.PersistentArrayMap
```