added registration benchmark script
registration: use faster sampling method

When summing Qtilde matrices in a region, we already box filter and only
sample at integer points. There is no need to do bilinear interpolation.
registration: increase performance of phasegradient

Previously phasegradient abused the bilinear sampling functions to sum
neighbouring values. Perform the sum directly and explicitly.
registration: improve performance of confidence()

Instead of using the sampling routines to simply shuffle matrices,
perform the shuffling ourselves explicitly.
registration: improve estimatereg performance

Instead of broadcasting the Python summation function when summing the
Qtilde matrices, make use of NumPy's far faster in-place summation.
increase iteration of reg. benchmark

10 iterations is now too fast(!)
registration: improve confidence() performance

Construct one padded matrix and slice it to get shifted matrices rather
than constructing shifted matrices explicitly.
registration: more improvements to confidence()

Only perform the 2nd and 3rd powers once.
README: note speedup in registration
registration: make use of np.solve(), it is faster
registration: revert to nearest neighbour sampling

For Qtilde matrices, we were generating registration vectors at the
wrong scale given the sampling. Fix the size of reg vectors produced and
we fix the need for bilinear sampling.
Merge pull request #97 from rjw57/registration-speedups

speed up registration