Refactoring pack

Refactored code: added strict mode, combined read+write engine-based methods into "actions" and more.
+ Added JSHint project configuration, fixed code to match it.
+ Added JSHint runner as QUnit test (using `XMLHttpRequest` in browser and `fs` module in Node.js, so won't work locally). JSHint does not work in IE<9 but it's not smth we should be worried about.
+ Changed optional string encoding parameter from boolean to string.
+ Added tests for UTF-8 encoded strings.