Introduce the modular simulator
The modular simulator builds independent elements and signallers based on
the input and stores them in a respective vector. It then calls the setup function
of all elements. It then repeats the following loop until a stop condition is met:
* Perform domdec and load balancing if necessary
* Until the next neighbor-searching step:
- Call signallers in order
- Call elements in order, allow them to register run function in queue
- increase step number
* Once the next neighbor-searching step is reached, run through the entire queue
of function pointers
* Repeat
Supressed some warnings about redundant std::move necessary for legacy
compilers.
Increased default trajectory tolerance for force comparisons, which
were chosen arbitrarily originally.
Change-Id: Iaae1e20581df464090979da9b05d04829f267300