Use smart pointer to pass ownership across functions.
Changed methods that take ownership of an object passed as a parameter
to take a gmx_unique_ptr instead of a plain pointer.
Changed methods that pass ownership of an object out as a return value
to return a gmx_unique_ptr instead of a plain pointer.
For all module pointers using boost::shared pointer because
caller of AbstractAnalysisData::addModule() should be able to keep
ownership but should not be required to keep it.
Conflicts:
src/gromacs/analysisdata/abstractdata-impl.h
src/gromacs/analysisdata/abstractdata.cpp
src/gromacs/options/options-impl.h
Change-Id: Ic5d00695d647a0ac8750edcbf585b801bf8b59ac