Add mergeWithKey
Update to build against containers-0.5.0.0

Update the types of update{Min,Max}{,WithKey}, deleteFind{Min,Max} to match
corresponding changes in containers-0.5.0.0, and modify the containers
bounds to require this change.
Use arrow functions to simplify tuple handling
Bump to version 0.2.0
Add missing 'NFData' instances

Starting with `containers-0.5`, the container types come equipped
with `NFData` instances, and so should `enummapset`...
EnumSet: follow latest containers
EnumSet: rename type variable e to k

This seems closer to the containers' use of Key type synonym.
EnumSet: use (***) instead of helper functions
update copyright notice
EnumSet: minor changes
EnumMap: follow the structure of containers

This introduces Data.EnumMap.{Base,Lazy,Strict}, following the
latest containers.
minor changes (comments, INLINE pragmas)
cabal: update version, modules, etc.
cabal: add upper bound on base
EnumMap: Use DeriveTraversable instead of GND

GeneralizedNewtypeDeriving can no longer derive Traversable instances
with the new Roles mechanism as documented in the Wiki[1].
DeriveTraversable still works and the change should be backwards
compatible as it should produce equivalent code.

[1] http://ghc.haskell.org/trac/ghc/wiki/Roles#RolesandTraversable