safe unpack function

our unpack functions are now safe and
check for type missmatches and
incorrect argument counts.

we also, have test coverage for these
cases