Adding tests and implementation for isBool

My iOS application interfaces with a JSON api which sometimes returns `true` or `false` values, which are placed inside an `NSNumber` wrapper when the JSON is parsed.

Objective C BOOLs are actually defined as `signed char` so calling `[num boolValue]` on an `NSNumber` with any other primitive besides `BOOL` will not yield the expected `YES` or `NO` conversions. Constantly using `isKindOfClass` checks is not an aesthetically pleasing alternative.

I've added the method `isBool` to double check if an `NSNumber` was created via `[NSNumber numberWithBool:bool]` and not some other primitive type.