Updated dependencies to use ~ convention, updated deps to latest

Specifying `0.2.7` means only use that, specifying `~0.2.7` means `>= 0.2.7 < 0.3` (so allow bugfixes but not any b/c breaks).

This will allow us to get bugfixes in the iconv-lite dep without having to keep republishing encoding.

I've also done the same for nodeunit, which means that if nodeunit 0.9 or 1.0 comes out which breaks anything, the tests for this will still run as it will use a version that it is compatible with.