[RFC] Api: Improve Nul handling

Allows the API functions `buffer_get/set_line()` and friends to accept NULs and convert them to vim's internal representation (new lines). Also adds a few tests for when to allow NULs, and when not to. Does not include the necessary changes for the clipboard because #1335 will fix that by using `systemlist()` for receiving the clipboard, and sending `system()` a list for setting it.

Not sure if there's anywhere else we need to handle NULs, but there are certain places we cannot, for vimscript compatibility, which is why I didn't modify anything except `buffer_get/set`.

Particularly, will be needed to test #1182 (ping @bfredl).