adds constrain_to_landmarks on BooleanImage

we currently have `MaskedImage.constrain_mask_to_landmarks()`, but that isn't so useful if you have just a `BooleanImage` that you are using as a reference space. This PR adds two new methods to `BooleanImage`:

- `constrain_to_landmarks(group, label)`
- `constrain_to_pointcloud(pointcloud)`

to encourage the use of `BooleanImage` as reference space templates.