add __new metamethod support

This adds support for __new metamethod for ffi types. It seems to work, may well have missed some cases...