Canny filter: You can pass an image of any dtype!

Took a closer look at the Canny edge detector when I decided to work on https://github.com/scikit-image/scikit-image/issues/466
It turns out `filter.canny` can be used on images of dtype int, not only float, unlike what the doc and docstring say (said).  This is great, so we want to make sure users know!
Users should/could pass low and high thresholds of their choice.  If they don't specify it, we default to 10 and 20 % (as the intention seemed to be, but now we're making sure we're talking about relative thresholds).
As per testing this new version, I did the following:
>>> from skimage import filter
>>> from skimage import data
>>> lena = data.lena()
>>> lena = lena[:, :, 1]
>>> filter.canny(lena)
>>> eNone = filter.canny(lena)
>>> eWith = filter.canny(lena, 1., 25.5, 51.0)
>>> eNone == eWith
# True everywhere
>>> np.where(eNone != eWith)
# This is empty