* Migrate to `unittest2`
why:
Global symbol overflow when running NIM 1.2 on Github ci suggests that
unit tests run sort of separately. The replacement library `unittest2`
provides that.
* Build ci dependencies
* Optimized and exception-less encoding/decoding procedures for decimal integers.
* Add tests.
* Fix import path.
* Fix review comments.
* Code simplification.
* Make toBytes() allocation free.
* Do not perform conversion to signed type to avoid compiler's overflow checks.