Phase unwrapping: Branch cut algorithm

My other PR on phase unwrapping, #644, is stalled (copyright issues), but I've had another implementation lying around for a while which is perfectly safe to include.

This PR implements the branch cut algorithm. Anyone wanting to review this in detail is encouraged to have a look at Goldstein's classic paper on phase unwrapping[1] before diving in; I've implemented the same algorithm with some slight modifications, mostly to allow treating masked arrays properly.

Functionality, tests, docs and examples should be about complete. I lack a test case for masked array input---ideas for good test cases welcome!

[1] R. M. Goldstein, H. A. Zebker, C. L. Werner, "Satellite radar
     interferometry: Two-dimensional phase unwrapping", Radio Science 23
    (1988) 4, pp 713--720.