Pyclasses

This is not ready to merge, but I want some feedback on the way I've attached distributions to random variables. This is necessary for making it easy to evaluate the logp of specific nodes and other things.

I had to switch to using regular classes for the distributions because otherwise parallel sampling fails, since the old distributions are not pickleable.