completely overhaul how options are passed to node-gyp
completely overhaul how options are passed to node-gyp

 - this breaks up configure + build/rebuild stages
 - this adds support for passing opts to gyp directly and unchanged
 - this starts passing through more arbitrary options you might want
   to communicate to node-gyp
 - this starts limiting the node-pre-gyp internal variables that get
   passed to node-gyp to a very select set. Sorry if this breaks your
   app because you were depending on variabls no longer exposed. If this
   happened just post an issue and we'll consider adding suppor for the
   node-pre-gyp variables you need passed to node-gyp

refs #140

mapbox/node-pre-gyp,mojodna/node-pre-gyp,mapbox/node-pre-gyp,mojodna/node-pre-gyp,etiktin/node-pre-gyp,synthetos/node-pre-gyp,mapbox/node-pre-gyp,fengmk2/node-pre-gyp,fengmk2/node-pre-gyp,mojodna/node-pre-gyp,etiktin/node-pre-gyp,mapbox/node-pre-gyp,etiktin/node-pre-gyp,synthetos/node-pre-gyp,synthetos/node-pre-gyp,fengmk2/node-pre-gyp,fengmk2/node-pre-gyp,etiktin/node-pre-gyp,etiktin/node-pre-gyp,mojodna/node-pre-gyp,mojodna/node-pre-gyp,synthetos/node-pre-gyp,synthetos/node-pre-gyp,mapbox/node-pre-gyp,fengmk2/node-pre-gyp