Fix for MONDRIAN-1133. RolapNativeFilter was forcing a join on fact tables despite the fact that the evaluator might not contains other members than 'all members'. This fix makes it check the evaluator context as well as its super class to determine if it can optimize the query and skip the join to the fact table.
(cherry picked from commit f37603f)
A better fix for MONDRIAN-1133 and fixes regressions MONDRIAN-1248 and MONDRIAN-1246. When deciding whether or not to join the fact table, the RolapNativeFilter was not very smart. I've used a MdxVisitor to go through the filter expression and spot all measures. If one is present, we have to join on the fact table. Additionally, this fix introduced a regression when Role objects come in after the fact and added more conditionals. They were presuming that the fact table was already part of the query but they were not mandatory anymore. They will now join correctly to the required tables according to the graph.
(cherry picked from commit 2abe132)
[MONDRIAN-1133] Fixing a test failure introduced with merge of 2abe132 and f37603f.
Merge pull request #171 from mkambol/1694

[MONDRIAN-1133] Merging missed commits from master into lagunitas, required before merging changes for [MONDRIAN-1694].