ShipGen: A Diffusion Model for Parametric Ship Hull Generation with Multiple Objectives and Constraints