use extend 1.2.1, singlebyte 1.0.11 for better processing of defaults

I have found (to much displeasure) that the undocumented function `_extend` in Node.js core module `util` actually **extends** its first parameter with properties and thus it may pollute or alter the defaults when the defaults are given as its first parameter.

Hence the pull request with the following changes:

* npm package [`extend`](https://www.npmjs.org/package/extend) is used (its function is able to accept more than two parameters);

* a new empty object (`{}`) is given as the first parameter to `extend` and is altered (extended);

* a newer version of my [`singlebyte`](https://www.npmjs.org/package/singlebyte) package ([similarly patched](https://github.com/Mithgol/node-singlebyte/commit/5abbba1be1e9114f5bca8b042fcb52c554319dc2)) is used.