Implement - `logical_not` per array API [spec](https://data-apis.org/array-api/latest/API_specification/generated/array_api.logical_not.html#array_api.logical_not) - `logical_and` per array API [spec](https://data-apis.org/array-api/latest/API_specification/generated/array_api.logical_and.html#array_api.logical_and) - `logical_or` per array API [spec](https://data-apis.org/array-api/latest/API_specification/generated/array_api.logical_or.html#array_api.logical_or) - `logical_xor` per array API [spec](https://data-apis.org/array-api/latest/API_specification/generated/array_api.logical_xor.html#array_api.logical_xor) These are going to be useful to test comparison operators too. These are supported for all supported types, and treat non-boolean types via `convert_impl<bool, srcTy>(const srcTy &val)`.