CLJS-583: duplicate keys in sets

fix cljs.core.PersistentHashSet so that duplicate keys are
prevented. Add a fast path for hash-set inlining macro and hash-set
emission in compiler.clj, if all keys are distinct constants don't check
for duplicates