Joins 

Testing framework.
Implement (by porting) concrete hash join.
Split into separate files for easy of code maintainence
Restructuring