[RDY] api/helpers: implement C string to String helper

@tarruda as suggested by @oni-link we could use `xmemdup` there, which is faster since it avoids an extra `strlen`, and saves a whopping byte of memory ;). To save on lines I abstracted it out into a separate function.

The obvious parameter commenting is a bit annoying though, let's hope something useful flows out of it.

Reference: https://github.com/neovim/neovim/pull/727#discussion_r12768748

**UPDATE**: It appears clint is flagging a false positive here:

```c
// clint: `src/nvim/api/helpers.c:344:  You don't need a ; after a }  [readability/braces] [4]`
return (String) { .data = NULL, .size = 0 };
```

Who knows enough of clint to make it disregard that?

And why the does it not error in the same way after https://github.com/neovim/neovim/blob/master/src/nvim/api/buffer.c#L56? Because of the return? Because of the cast?

```c
// why is this ok?
String rv = {.size = 0};
```