Bach: Probabilistic Declarative Programming