Simple refactor of dbm costs.
I removed the positive and negative phase methods from the BaseCD because they overwhelm the class, making it hard to read.  In addition there doesn't seem to be a lot of
good reason to make them member functions, as they don't reference many members.
Is BaseCD supposed to do something?  It doesn't implement any particular _get_pos_phase or _get_negative_phase, so it will fail on it's own.  Was it supposed to implement
the standard negative phase and sampling positive phase?
Overall, I'm attemping to do a cleanup here to make it easier for new code readers to understand what's going on.