Give props to Hugo Bonacci

EnumExtensions was based on a Stack Overflow answer by Hugo Bonacci.
Reached out to him to get permission and he kindly gave it to us on
January 4 2013.  Adding a link back in this class to ensure that he
gets the proper credit.
Rename Enum.Has<T> to Compat.Enum.HasFlag<T>
adds ReferenceAlreadyExistsException and wrap native exception in it