MapReduceLab: Implemented esercise 5 - Joins

Implemented two different joins:
1) Distributed Cache Join used to join one large file with one small file
2) Reduce Side Join used to join file with size of the same order (in our case it's a self join)

Signed-off-by: enrico canzonieri <enrico.canzonieri@eurecom.fr>
Merge branch 'master' of https://github.com/poros/MapReduceLab