implement the functions fromListWith and fromListWithKey

Hi,

It's a rebase of my other pull request (#46) in order to get only 2 commits.
To avoid some rebase issues, I create a new branch.

best regards