add indexBy function. like Clojure's group-by, but it supports multiple keys