Introduce `Enum.group_by/4` function

I have an idea and it will be convenient for a lot of situations. Enum.group_by/4 acts like Enum.group_by/3, but it invokes additional function for each entry. I wrote two examples in the @doc section. Please check it out.
And I added tests not only about /4 but also /3. This aims to explain the differences between the two functions.