fix rank filters for float structuring element

If a structuring element such as np.ones((3,3)) is used for the rank filters, it gets converted to an unsigned byte image by skimage.img_as_ubyte in rank._apply(), which then results in 1.0 -> 255, which then leads to the wrong computation in the rank filters attack/release masks.

TODO: add a test that fails before and after this change.