CLJS-582: (set [1 2 2]) => #{1 2 2}

Remove ill considered set construction optimization - was naively
applying idea from list construction optimization to sets.

Instead handle IndexedSeq case specially as this optimizes hash-set as
well as small PersistentVector case. Otherwise just loop/recur reduce on
a transient set with appropiate type hinting.