Start refactoring `IContactInformation`, extract helper classes.

This PR extracts parts of the ``IContactInformation`` utility to separate classes:
- some parts of the  ``describe`` method
- the ``get_profile_url`` method
- the ``render_link`` method
`with_principal` has no consequence, this check makes no sense.