add Reduced in datatype map
[cljs] upcast HMap to IAssociative. upcast HVec to IAssociative. upcast HSet to ICollection and ISeqable
add more tests. Known issues: subtyping for HSequential is incomplete.  promote is not defined for HSet