Don't treat bools as integers for casting (#478)

Giving them their own castSpecialType means they will use the default
castFunction instead, which raises an InvalidCastException.