Minor cleanups
* reduce includes in header * use unique_ptr for pimpl pointers * explicitly use default for destructors