[RFC] Implement `xstrdup` and `xstrndup`

This is the `strdup` function but uses `xmalloc` to allocate memory, so it will succeed or exit the program.

I used 'strings.h' and not 'string.h' to make it more clear that it's not the header from standard library