Re-thought the joins concept using just a trait

As my #5 was trying to integrate joins completely into the criteria stuff it self. I've now just thought of using a trait to handle the joining.