Make bool() handle integers > 1 and evaluate empty / non-empty
Currently bool() only accepts 1, 0 "true", "false".
It would be very useful to evaluate
- all integers above 1 as true
- all empty strings, arrays or objects as false
- all non-empty strings, arrays or objects as true (except the special string "false")