[Hillificator] Updated the handling of HILSensors
- Now the data type is saved in the Sensor class for possible future access
- Implemented a copy constructor for the Sensor class which creates the mutex and moves the lastSample
- The HILSensor class, templated on a real sensor of type T, overrides the sampleImpl method to use the passed mapping function to generate the last sample from simulator data. The init and selfTest methods are overridden so that the real methods are called only if the "hardware is enabled". Also, a getRealLastSample method is implemented so that, in case that the "hardware is enabled", we can get also the corresponding real sample.
- The hillificator function is an helper function that, once passed the sensor pointer, the flag to enable the hardware and the mapping function, returns the corresponding HILSensor. The returned sensor behaves just like the real sensor, but the sample that it returns comes from the updateData function (which usually maps the simulator data to the data returned by the sensor).
- Moving all the HIL framework in the Boardcore namespace
- Removed the old version of HILSensors and the infrastructure to handle it
- Now the sampleCounter that the HILSensor uses during sampling time is computed so that the simulated sample taken from the buffer is representative of the current state of the rocket
- All sensors have been updated so that they will have only protected methods, not private