Changing isBool check to depend on object type and not object class name

* Also adding two tests indicating that [NSNumber numberWithInt:1] and
  [NSNumber numberWithInt:0] (like any other NSNumber) are *not* BOOLs
  and should not be indicated as such by isBool