Updated join resolver to select min cost join clause

1. Figure out all join paths between dimensions tables and targets
2. Updated CandidateTableResolver to remove tables which will not be part of a join path
3. Updated join resolver to use min cost join clause
break is for the inner loop which loops over columns of the table. isRemoved is for the outer loop which loops over facts