Add dpointer-free UML metamodel implementation

- UML metamodel isn't likely to have changes, therefore we
  can get rid of d-pointer and private classes

Change-Id: Id61fd25b965da5ed920e863d047e40ec293c106a
Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>