Fast Marching Method for image inpainting

This has been ob my todo list for long.

Replaces: https://github.com/scikit-image/scikit-image/pull/663

Rebase was impossible, also it was necessary to reduce the number of commit messages anyway.

I created a commit message in behalf of @chintak. I hope this is fine with you Chintak?
As the doc string points out, ``(i,j)`` are the coordinates of the pixel whose gradient needs to be calculated. If my input is transpose of the original matrix, my coordinates also need to be transposed in order to access the same pixel. In the function, the gradient is calculated only for a single direction, i.e. ``j``.

In hindsight, it might perhaps be more efficient to calculate the gradient for both the directions in one go rather than incurring the cost for transposing and function call once again.