subpixel shift registration addition

For the sake of keeping a more readily accessibly reference to this controversial addition, here's a PR.

Discussion has thus far been at:
https://groups.google.com/forum/#!topic/scikit-image/fDbdOgHgolI

This PR should not be merged until licensing issues discussed in that email thread have been addressed.
This bit took me a while to grok, and I think that could have been avoided with a bit of a refactor:

```python
if filter_function is not None:
    for axis, axis_size in enumerate(ref_image.shape):
        filter_shape = [1, ] * ref_image.ndim
        filter_shape[axis] = axis_size # set up shape for numpy broadcasting
        ref_image *= filter_function(axis_size).reshape(filter_shape)
    ref_image = np.power(ref_image, 1.0 / ref_image.ndim, out=ref_image)
```
The last expression will avoid the creation of a temporary array.