Add support for Enum.categorize/2.

Takes a collection and a function. The function takes a value and returns a category for that value. The result is a hash where the keys are categories and the values are a list of elements from the collection for which the function returned that particular category.