Data holder class pointers changed to `QSharedPointer`.

* Namespace-level headers do the necessary forward declarations and
  `typedef` declarations for `QSharedPointer` wrappers.
* Renamed base data holder classes to have a suffix `_I`.
* Changed data members of `Ring_I` to have a suffix `_`.
* Made header inclusion more uniform.