code: Add support for pmem non-temporal memcpy, memmove and memset

This pull request integrates the support for the PM versions of memset, memmove and memcpy using non-temporal instructions.
I think its fine to do this with the casting. I actually think its clearer to cast it this way in all the cases I have done this. The casting is done at compile time and doing this doesn't result in any additional instructions. Its simply a direction to the compiler to tell it what the type is.  Since C is a strongly typed language its clearer to me and I think to the reader to do it this way.