[final step] InstanceHolder to unique_ptr
[final step] InstanceHolder to unique_ptr

 Finish converting InstanceHolder to unique_ptr.

 Remove `struct InstanceHolder`.

 Add alias `InstanceHolder = unique_ptr<void>`.

 Add helper functions: `make_instance_holder()`, `instance_deleter()` and
 `get_instance()`.

 Add "emplace or assign" idiom to function `save_instance()`.

gracicot/kangaru