Full set of passing specs for Union; needs refactoring and documentation.
Refactored Union and added more methods from Struct.