Discrete-Continuous Smoothing and Mapping