Adopted NS_ENUM to work better with Swift

Per http://nshipster.com/ns_enum-ns_options/, this is a better and easier way of defining enums. Also it works better with Swift.