### What it does
Checks for uses of bitwise and/or operators between booleans, where performance may be improved by using
a lazy and.

### Why is this bad?
The bitwise operators do not support short-circuiting, so it may hinder code performance.
Additionally, boolean logic "masked" as bitwise logic is not caught by lints like `unnecessary_fold`

### Known problems
This lint evaluates only when the right side is determined to have no side effects. At this time, that
determination is quite conservative.

### Example
```
let (x,y) = (true, false);
if x & !y {} // where both x and y are booleans
```
Use instead:
```
let (x,y) = (true, false);
if x && !y {}
```