* Add tests for name decoding corner cases
* Modify name.decode to throw an error in the following cases:
* Not enough data for reading the full label
* The label is too long (over 253 characters when dots are included)
* A label must be either <= 63 bytes or a pointer
* Pointers can only point to prior data (see RFC 1035, section 4.1.4)
In addition pointer jumps don't add extra dots in the names anymore.
* Make name_decoding tests more specific
* Make name.decode non-recursive
* Ensure name.decode can read the label header
* Fix name.decode error messages