implement mapMaybeWithKey
Add unionWithKey
Add unionWith function.
Add test for unionR.
Rewrite unionL and unionR in terms of unionWithKey.
Add unions.
Add unionsWith
Implement alter.
Merge
Merge pull request #29 from mikesteele81/union-family

Add union family of functions
Fix up some excessively long lines
Add a newtype to provide smaller Arbitrary instances

--HG--
extra : histedit_source : 50167f9be84d2873ba8664f50df8f8efc6da8455%2C77aabca502b02976a8eecab587d0967ff6b222b6
Improve performance of t_unions and t_unionsWith

--HG--
extra : histedit_source : c66a4870326ee9f083c7c7eb672409b1f0b9450f%2C31b2cb563183462e47b7aead177f9e4df4b5a9d7
Merge pull request #32 from archblob/Deletion

Implement alter.
Fix a little naming and indentation in alter
Simplify alter a bit
Implemented `update`

Just a wrapper around `updateWithKey`
Implemented `updateLookupWithKey`

Based on the algorithm from `updateWithKey`, which is now implemented
in terms of `updateLookupWithKey`.