Double shift in reading type/length in buffer_to_tlv.

When using extract_torv, the shifting is already performed by
pbuffer_safe_extract. Doing it twice is an error.
Merge remote-tracking branch 'upstream/master'

Conflicts:
	tlv.c
Remove extraneous safegard in pbuffer_consume

The safegard 'see if we can move the data' only makes sense when we
would have used memcopy instead of memmove. This safeguard would prevent
moving the data when the length is longer than the offset.
Emphasise similarity pbuffer_shift and pbuffer_safe_shift.

The _safe variant of functions introduces a large amount of duplication.
Attempt to minimize this by making the unsafe variant as tiny a wrapper
as possible around the safe function.
Merge pull request #2 from sjoerdjob/master

Minor rewrite