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:

- [ ] Stations
- [ ] Clusters
- [ ] Coincidences
- [ ] Storage
- [ ] Best fit algorithm
- [ ] Tests


@HiSPARC/coders