hide std::unique_ptr<> from ROOT

This file provides an easy way to hide the details of std::unique_ptr
from ROOT while still being able to use that class as a return type
for member functions parsed by ROOT.
This will be unnecessary when we switch to ROOT 6.
Have TkCloner return std::unique_ptr for factory functions

The static analyzer was complaining about TkCloner returning
non-const pointers from functions. These functions were purely
factory methods so the complaints were not justified. However,
the best way to silence those complaints was to change the return
type to std::unique_ptr since this enforces the ownership transfer
which was merely implicit in the previous API.
Merge pull request #5173 from Dr15Jones/useUniquePtrInTkCloner

Have TkCloner return std::unique_ptr for factory functions