Tree structure initialisation/Beam initialisation through setup_beam
The tree structure of the current initialisation process can cause unforeseen circumstances as seen in !225 (merged) . Especially the Beam is problematic, since it not foreseen to be in the element pipeline before it has been setup. It should be discussed whether the current approach to have the self._dt and self._dE arrays be initialised only at setup_beam is a good approach, or if the beam should take in n_macroparticles on init and create the arrays there. This would avoid the issue which was in !225 (merged) which was essentially an element in the pipeline having a reference to beam, which was then tried to be initialised before calling setup_beam in the beam_preparation routine with the SemiEmpiricMatcher