Feature/bk template ap generator

This is to merge the work with template fitting and convolution back into develop.  On the whole I think this work was isolated from other people's work however I have changed a few parts of common code so I wanted to check everyone was aware and ok with these changes.

The changes to core (framework) bits of code:
 - `EventNavigator::GetSetupRecord` is now a static method so you don't need to get the EventNavigator Instance first.
 - SavePulses fills the TAPs with the Copy method.  That means that in derived types of TAPs you should overload this method and call the base-class's version from within that.  This was a bit of a hack really because for some reason ROOT wasn't copying the fields of a derived tap over correctly.  You can see an example of this in the TTemplateConvolveAnalysedPulse class.
 - ExportPulse now saves TAPs and TPIs to sub-directories of itself since there were too many plots in the single directory to be manageable I found.
 - I have extended the PulseViewer to work with some of the newer derived-type TAPs.  If anyone wants to use it with a different kind then hopefully they can follow the way these other types work.
 - Some changes went into the TAPAlgorithms classes but I don't think the default behaviours were changed.