Implement is_bool

Thanks to review this code.
It might be wrong as I actually don't understand the implementation of `isString` ...
```
isString pv = return $ PBoolean $ case (pv ^? _PString, pv ^? _Number) of
                                     (_, Just _) -> False
                                     (Just _, _) -> True
                                     _           -> False
```
Why do we need to `case` for `(_, Just _) -> False` ?