Top level Dimension entity 

Changes include :

* Top level construct - Dimension, which holds set of attributes. And DimensionTable belongs to a dimension.
* Relationships are between Cube and Dimension instead of Cube and DimensionTable
* Refactoring of classnames

Should we throw exception here, since assert will be just suppressed