The CMS Monte Carlo Production System: Development and Design