Improved MVVM support

Added TabItemsTemplate and TabItemsSource on the ribbon control,
GroupsTemplate and groupsSource in RibbonTabItem, a few other related
fixes.
Could you please explain why this class is needed?