SMCGen: Generating Reconfigurable Design for Sequential Monte Carlo Applications