Faunus – a flexible framework for Monte Carlo simulation