Several random process generators have been added, namely `PeriodicGaussianProcess`, `PeriodicFourrierProcess`, `PeriodicPerlinProcess` and `RandomPerlinProcess`. They are designed to be used as basis to implement external force profiles. In this context, they have been optimized to computational efficiency rather than mathematical correctness. On a completely unrelated note, Python bindings are now more "pythonic", and registered external forces are now properly removed at reset.
New features
* [core] Add random process utilities.
* [core|core/python] Add getter for impulse, profile, and coupling forces.
Improvements
* [core] Change naming convention for consistency, aka 'registerForce[TYPE]'.
* [core/python] Full-featured std::vector wrapping.
* [core/python] Expose global random generator reset method.
* [core/python] Initialize random number generator when load python bindings.
* [core/python] Improve docstring signature type and keywords inference.
* [python/simulator] Make sure destructor cannot raise exception.
Bug fixes
* [gym/common/envs] Fix registered forces not automatically removed at reset.
Miscellaneous
* [core] Split utilities in multiple files.
* [core] Use unique_ptr to reduce header dependencies and speed-up compilation.
* [core] Remove some useless includes in core.
* [python/viewer] Enable EGL fallback for panda3d, since it will be provided with Panda3d>=1.10.9.
* [gym/common/utils] Remove Python native implementation of 'PeriodicGaussianProcess'.