[RFC] Add support for test-only modules

With this PR we can now:

- Test static functions
- Mock functions for testing(see the find_locales example)

This is done by merging the files in the nvim/test-helpers directory with the corresponding module. Since the file is included in the automatically generated static header, we can "override" functions by using macros with the same name.

I also started work for removing `os_call_shell` in favor of `os_system`, which will require refactoring all functions that call it indirectly. There's still one more usage of `get_cmd_output` but I will remove in another PR
`helpers` defines `NULL` as well since https://github.com/neovim/neovim/commit/c3b9f863ea09eaf1bf56c0112db1c3e2baca1457.