Added discrete variable support to Metropolis

`Metropolis` now supports discrete as well as continuous variables. Added a `BinaryMetropolis` for use with Bernoulli random variables. Updated `latent_occupancy` example to use `BinaryMetropolis`.