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 a 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 becomes the object that is altered (extended), while the defaults remain untouched (safe);

* 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.