ImmutableCollections: include the key in the "duplicate key" exception message

This makes the exception message much more useful in log files, etc.
E.g. `An element with the same key 'Invoice_413' but a different value already exists`

Based on a twitter [discussion](https://twitter.com/terrajobst/status/540658277562851329) with @terrajobst.