ie :: {byte, binary}
add([ie], binary) :: {:ok, binary} | {:error, any}
extract(binary) :: {:error, any} | {:ok, [ie], binary}
has_udh?(SMPPEX.Pdu.t) :: boolean