use unique pointer
Merge branch 'shiphandle' of https://github.com/voxelinc/voxellancer into shiphandle