During enum construction, assert that all members are the same concrete type.

Having differing RichEnumValue subclasses used in the same RichEnum has proven
to be the source of many subtle bugs.
Merge pull request #22 from rbm/assert-same-types

Assert that all members of a RichEnum are the same concrete type
Membership tests without cross-type comparisons
Don't raise warnings on comparisons to None
Update changelog
Merge pull request #24 from akshayjshah/contains

Raise fewer warnings about cross-type comparisons
Suppress type comparison warning in RichEnum.lookup.

A reasonably common pattern is a RichEnumValue that has an attriibute that's
a list of some other RichEnumValue, usually related values. lookup() can then
be used to search said attribute for a specific member.

We always check up front to see if the object we're searching for and the
attribute value in question are exactly matching; in this case that generates
a type comparison warning that's spurious, since the next case (checking if
the attribute value is an iterable and seeing if the object we're searching
for is in it) does the correct thing.
Update CHANGELOG and package version
Merge pull request #25 from rbm/warning-fix

Suppress type comparison warning in RichEnum.lookup.
Stop barfing stacktraces everywhere
Merge pull request #27 from akshayjshah/warnings

Stop barfing stacktraces everywhere
Update package metadata
Merge pull request #28 from akshayjshah/warnings

Update package metadata