MONDRIAN-1061 - java.lang.StackOverflowError resulting from recursive calculated member usage within virtual cube

Fixed tail recursion with registering visited members for visitor implementation for discovering calculated members.
Please review.
Junits added with modified (simplified) foodmart schema.
This method won't be needed once you use the TestContext methods to create ad-hoc schemas/cubes.