Reverse Monte Carlo modelling of the structure of disordered materials with RMC++ : a new implementation of the algorithm in C++ | Synapse