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.
I _think_ `q = q[np.ravel(binary_mask)]` should do the right thing here.