Extract data fields

Start the radiometric drift routine, by reading
data fields from the two JSON object inputs and
storing in dictionaries.

Perform a check to make sure that both datasets
are for the same region of interest (might want
to add other checks here later?)

Also add unit tests for new methods
Add doublet checking methods

Add functions to libtools for checking doublets:
- calc_amc calculates the AMC value for given
  viewing angles

- calc_amc_threshold calculates the AMC value
  corresponding to given angular differences,
  to be used as a threshold value

- check_doublet takes a pair of images and
  tests whether they meet all the matching
  criteria (AMC below threshold value, dates
  within threshold offset, ROI coverage at
  least threshold value)

- Also add a helper tool slice_dictionary to
  enable taking a slice across all keys in a
  dictionary (ie as if doing something like
  dic[:][index])

Also add tests for these new functions
Add some new general functions

Add some new functions to libtools, for use by
the other tools:

- mean_date: return the mean of a list of dates
  (in python datetime format). This was previously
  coded in libbrdf_reoujean, so change that to
  call this libtools function instead.

- get_reflectance_band: Read 2d reflectance array
  from a list of files, but only for a particular
  raster band.
  Also change the name of get_reflectance to
  get_reflectance_mean so the distinction is clear.

Add units tests for these too