Use Typed Enums

This pull request changes many C-style `enum`s to use `NS_ENUM` or `NS_OPTIONS`. This is type-safe and compatible with Swift, should Boxer ever migrate to 64-bit.

I forgot when they were introduced, but they should be buildable to any version of OS X, provided `NS_ENUM` and `NS_OPTIONS` are defined.