Use specific structuring element in Canny function

This PR specifies an 8-connected neighborhood structuring element used in the `scipy.ndimage.label` call within the Canny function.  The previous version `np.ndarray((3, 3), bool)` was not platform independent and in some cases random and nonsymmetric.

This fixes 5 of the errors in #495.

Also, if there is interest it would be simple to add a kwarg (and test) to toggle between 4- or 8-connected neighborhoods, probably with the default being 8-connected.