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
Is isRemoved flag required? When it is removed, loop would have been broken already, no?