Remove duplication in group_by methods

I've tried to remove the duplication between `List#group_by` and `Set#group_by` by extracting the `Groupable` module. I've also introduced the `#conj` method (inspired by [Clojure](http://clojuredocs.org/clojure_core/clojure.core/conj)) to simplify the implementation, maybe it makes sense to add it to all the collections in Hamster.

Let me know what you think :)