Separate implementation of JointPdf

This added a bucket load of new implementation files.  Fixes an item in #47.