Neurons as Monte Carlo Samplers: Bayesian Inference and Learning in Spiking Networks