use Big for effectiveAddress

effectiveAddress is now the only internal utility function since padding
and signExtending use implementations from the hexa library.
quotient and remainder utilities for big ints
extensive refactor

- Each operation has been re-implemented in a more readable style at
  the cost of some code duplication.
- Replace Long with Big.
- Correct overflow by taking remainder of integers.
- Remove adapters.
- Move validators to own file, currently unused.
- Start to break test/index.js into multiple files.
implement NEG operation
implement NEGU operation

No test cases found where it differs from NEG, but implemented
separately anyway.
implement SL and SLU operations

SLU is an alias for SL.
implement SR and SRU operations
implement CMP and CMPU operations