Mixed Hamiltonian Monte Carlo for Mixed Discrete and Continuous Variables