ENH: Added binary_mask as input parameter for grid3d

This is the a mechanism that I came up with for masking
bad regions of images that I think @tacaswell will agree with.
The other approach would require masking before process_to_q.  If
we go down that route, then process_to_q will need to take in the
image stack again.
change this to `if binary_mask is None or binary_mask.shape == img_stack.shape`