[RFC] Introduce neovim namespace

We were having problems (#675 and some similar ones before) because of some headers having the same name as system headers in some platforms.

So, a decision was taken to namespace headers to avoid these conflicts.
#596 was a first attempt to that.

Then (see end of #596 thread) another decision was taken to also namespace c files, which was considered better.

This implements that second decision.
Thus, this replaces #596, and fixes #675.