typedef flags to unsigned int.

When you typedef dpl_vfile_flag_t and dpl_vfile_t and others to an enum
type it can only be one of the enum values otherwise the compiler will
compain. Currently you can only store one enum type in it and we want to
store an or-ed value.
Fix POSIX backend with reading data.

Its perfectly fine that a read returns less then the actual size
of the pre-allocated buffer. We should also use the actual count
read (cc) as the return value in data_lenp. Also when the offset +
range_length given is bigger then the actual filesize only read the
data left.
Don't use creat() as that will truncate the file on every open.

creat(path, mode) translates to open(path, O_WRONLY | O_CREAT | O_TRUNC, mode)
which means on every blob you write to a file using the POSIX backend
you truncate the file and loose previously written data.
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.