Fix problem with DPL_OPTION_NOALLOC

When using DPL_OPTION_NOALLOC the size of the buffer is passed on via
the data_lenp variable so we need to pass that to backend get() method
so if we dont get a valid data_lenp pointer we set it in dpl_get() now
to point to a the local data_len variable so we always have a valid
data_lenp pointer to pass to the backend get method. As we now pass on
the pointer all the way from the upper layers all the way down to the
lowest layer we get the actual length off the preallocated buffer and
can return the actual size of the bytes we stored in the buffer on
return.