fixed bug where seek would corrupt memory on some kernels

lseek gets a pointer to the file struct in the kernel and is responsible for modifying the file->f_pos member of that struct to represent the current position in the file.

Because this struct changes on different kernels this can result in undefined behaviour, as pmem_llseek() will modify other members of the file struct depending on the layout. Also the offsets in the memory dump get corrupted in this case, because the seek syscall is now a nop regarding the device file.

I now maintain an internal f_pos value that tracks the current position in the physical memory 'file'. This fixes all the issues we encountered, including the invalid file descriptor bugs on kernel 3.15. I've thus upped the version number to 0.5.

BUG=
R=scudette@gmail.com

Review URL: https://codereview.appspot.com/123730043