Merge branch 'release/3.0.0'
Resolve #63 - Implement caching for GetHashCode on entties

This change means that the hash code generated for an entity can never
change during the lifetime of the object.
Resolve #57 - Fix bug in EventBoundSetWrapper

The issue was that the set wrapper implemented the generic ISet<T> but not the
non-generic version (which ISet<T> does not itself implement, as assumed).
Bump version numbers
Merge branch 'release/3.0.1' into production