Implemented kernel-ised Gibbs sampler
Changes: 1. Implemented GibbsStep and GibbsKernel classes 2. Modified mcmc.sample function to use Gibbs sampler 3. Amended bugs in event_time_mh.py and occult_proposal.py (edge cases where tf.gathers were overshooting the bounds of the data stuctures, not apparent on a GPU but raised on CPU).