Implement Chassis::DirtySession

This is a way to remove dirty tracking from entities. Collabarators
can wrap the object in a dirty session then call methods to see what
happened.

Thanks to @solnic for the tip.