solidify the front relative transform

The previous behaviour was functional but had some problems:

1. attempts to compute values outside of the original data, leading
   to zeros (cval of map_coordinates) in the output.

2. PreProcessor.transform_to_front_relative is a long and confusing
   method.

Solutions:

1. data from outside the measured region is replaced with nan rather than
   0.

2. refactor front relative transform to smaller logically distinct
   methods.

Note:

The reason we try to get data outside the measured region is that in
some runs the data only starts ~5s before current front passage.
Currently we are asking for 5s before and 20s after the front passage.
If the data only starts 4.8s before passage then there are 0.2s of
missing and unrecoverable data.

This is only a problem in the time axis, not in the spatial axes.
explain front / lab frames