Refactor reconstructions

This branch is meant for the refactoring the reconstructions part of SAPPHiRE. Focusing mainly on the direction reconstruction.

What will be done:

- Multiple algorithms that can be used for reconstruction (some suitable for different situations).
- Functionallity to easily run the reconstruction on data (from ESD).
- Easy comparison between the algorithms by allowing the user to choose which to use.
- ...

Bare algorithms are implemented in seperate classes. Those classes should not do anything with tables and can be run by inputting only timings and positions (angles). The input, for the analytical versions that require 3 detections as input, should be the same for each algorithm.

Make subclasses that apply cluster/station logic, getting detector positions, figuring out which positions to use, to those algorithms

Seperate classes that are smart and choose the best algorithm for some data. For instance work through a datafile and reconstruct all coincidences with > 3 events with best fit, with 3 events with analytical function and for stations with 4 detectors also reconstruct the angles.

And provide an easy and consistent storage experience.

Todo:

- [x] Events (AdL)
    - [x] Stations (AdL)
- [x] Coincidences (AdL)
    - [x] Clusters (AdL)
- [x] Storage (AdL)
    - [x] Events
    - [x] Coincidences
- [x] Best fit algorithm (AdL/HM)
- [ ] Tests (DF/AdL)
- [x] Support for altitude in sapphire.clusters, steal from #13 (AdL)
- [ ] Reconstruction errors
    - [ ] DirectAlgorithm
    - [ ] Cartesian algorithms
    - [ ] Fit
- [ ] Timing offsets
    - [x] Detectors
    - [x] Stations
    - [ ] Intelligence
        - [ ] per cluster station offsets
        - [ ] to few data or bad fit, set offset to 0..
- [x] Add 2.5 ns binning for detector arrival times
    - [ ] Figure out how this affects the ext_timestamp..
- [x] Calculate difference in angle between simulation parameters and reconstructed values.
- [x] Add altitude support in shower front simulation
    - [x] Then figure out how this affects the detector/station offset determination

@HiSPARC/coders