large code reorganisation:
* timeout as time.Duration
* fix long lines
* decode.go -> helper.go, packet.go -> marshal.go
* move functions between files
* organise marshal.go
* move functions 2
* calc_length -> parseLength, build_length -> marshalLength
* reorder helper.go