Change some gmx_unique_ptr to shared_ptr in public headers

Change "trivial" occurrences of gmx_unique_ptr to boost::shared_ptr in
cases where there is a simple factory or a sink function where the
ownership of the object passes in or out from the library.

The main advantages:
 - Removes GMX_CXX11 dependencies from installed headers.
 - Improves memory management, where the memory is deallocated in the
   same library/executable that allocated it (through the shared_ptr
   deleter that gets created during construction).
The only disadvantage is that this blurs the ownership of the objects
slightly.

There are only two other instances of gmx_unique_ptr left in installed
headers, and those should be relatively easy to remove as well with a
bit of refactoring.

Related to #1454.

Change-Id: I1f694b30e4f8129f5d010115c0968a444e927ca0