Bring make_ref() semantics on par with std::make_shared()

This changes the semantics of globjects::make_ref() from being a wrapper around a call to a constructor of globjects::ref_ptr() to those of std::make_shared() (and std::make_unique()) thus enabling "new-free" programming with globjects. Herb Sutter would approve this.

I also added a little test for the function.