Camgen A generic tree-level particle scattering Monte Carlo generator using recursive amplitude evaluation