Fix issue with length byte in extension headers

6lowpan compression specifies that the length byte of a compressed
extension header is the number of bytes that follow the length byte.
Therefore it should not include the header type nor the length byte in
the total.

This commit fixes that and reworks how the extension header compression
functions work so that keeping track of buffers isn't spread to multiple
functions. Also, I fixed one of the tests so that it now compressess,
uncompresses, and recompresses a series of headers to verify that it is
working.