Added test case to ensure that enum versioning and replay works correctly.  Test fails because incorrectly deserializing enums.
All enums inherit from IRalphEnum, which ensures that they can produce
an internal value associated with ordinal value.
Adding enum constructor objects, which will allow us to rebuild enums
when replaying, and generating singleton constructor for it.