significant code reshuffling to match node core style

- check for kMaxLength
- throw specific Error types (TypeError, RangeError, etc.)
- order methods same as in node core
- match implementation of some methods better, like toString
2.7.0