Pulled in David's changes to sparse_disp
sparse_disp: changes to rounding to improve compatibility

Older python versions require indices to be integers, replaced some instances of floor() with int()
sparse_disp: Add option to fall back to full-res template match

In some smooth-topography cases, the initial half-resolution search was giving poor results.  Now check whether the half-res search gave an answer, fall back to full-res if not.
sparse_disp: error handling in est_epipolar_vec

Check if there are any values with good correlation before running the epipolar estimate
sparse_disp: Add maximum-disparity-cluster test

This option improves on the maximum-disparity-distance test in previous versions.  Now we identify all matches with C> C_tol and establish how well they are clustered in disparity space based on their minimum disparity difference with a neighbor.  The 90th percentile of the clustering distribution in each direction is used as a filter on the matches with C< C_tol.  This tends to eliminate spatailly isolated blunders with poor correlation score.  This test is enabled by default, disabled by invoking the --Exhaustive option.
sparse_disp: local_epipolar option, cleanup

For very large images, the distortions introduced by rpc mapping can lead to variations in the effective epipolar axis.  This commit breaks the image into large chunks and estimates an epipolar vector for each, falling back to the global epipolar vector if there are not enough high-quality points available.

This commit also removes the ep_vec_initial option, which was mostly unused, and cleans up some sloppy filtering statements in the code.
sparse_disp: cleanup

Minor reorganization and cleanup
sparse_disp: more cleanup

Finish the changes started in last commit.
sparse_disp: small bug fix

...because ~np.any works better than np.None
bundle_adjust: Support for ground control points

bundle_adjust: Support for ground control points
dg_mosaic: Spell