pkg: add nan
gpio: [cpp] rewrite all as async using nan