Major refactor of PMT's core and all backends
Some problems were identified during the use of some PMT backends in some circumstances, e.g. 0's or NaN. This description is deliberately vague, like those issues.
This prompted for a major refactor that makes the code both much simpler and more robust.
The main idea is to have backends as simple as possible, they just report energy (in Joule) or power (in Watt). It is PMT's (the superclass) responsibility to derive the other quantity by keeping track of a previous state. PMT::Read will now also extrapolate whenever no new measurement is available, such that querying elapsed time or energy between two State's always return valid and sensible values.
The Dummy class is extended so that it now also serves as the backend to test PMT's core functionality.