Fix objective-c++ compatibility

#24

I added one simple test just to check compilation in c++ mode, and two fixes. One of them uses NS_OPTIONS to declare a enum of specified type(NSUInteger). This macro introduced in Foundation with iOS 6 / Mac OS X 10.8 so in older configurations it doesn't work but we can declare fallback in some place like this (it's from `NSObjCRuntime.h`)
```
#if (__cplusplus && __cplusplus >= 201103L && (__has_extension(cxx_strong_enums) || __has_feature(objc_fixed_enum))) || (!__cplusplus && __has_feature(objc_fixed_enum))
#define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
#if (__cplusplus)
#define NS_OPTIONS(_type, _name) _type _name; enum : _type
#else
#define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type
#endif
#else
#define NS_ENUM(_type, _name) _type _name; enum
#define NS_OPTIONS(_type, _name) _type _name; enum
#endif
```
First pull request, yay!