Force the `cmake` target to re-run the CMake configuration.

This makes it more handy when files are added or removed from the source
tree.  A simple `make cmake` will re-configure and pick up the change.
update readme: "progress" section; formatting
xmalloc() that succeeds or gracefully aborts
Avoid a seg fault when exiting after OOM error

I'm debugging OOM behavior using http://www.nongnu.org/failmalloc/ on Linux.

gdb environment:

```
set env LD_PRELOAD=libfailmalloc.so
set env FAILMALLOC_SPACE=0xF00000
```

SEGV was happening like this:

```
Starting program: /home/felipe/code/neovim/build/bin/nvim
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Vim: Error: Out of memory.

Program received signal SIGSEGV, Segmentation fault.
0x00000000004d3719 in getout (exitval=1) at
/home/felipe/code/neovim/src/main.c:836
836       if (*p_viminfo != NUL)
(gdb)
```

After the fix it works as expected:

```
(gdb) set environment LD_PRELOAD=libfailmalloc.so
(gdb) set environment FAILMALLOC_SPACE=0xF00000
(gdb) r
Starting program: /home/felipe/code/neovim/build/bin/nvim
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Vim: Error: Out of memory.
Vim: Finished.
[Inferior 1 (process 21505) exited with code 01]
(gdb)
```
Document xmalloc() and deprecate lalloc()
xrealloc(): similar to xmalloc()

Replaced all calls to realloc by xrealloc. All `== NULL` tests can be removed
and the code within `!= NULL` tests can be unwrapped.
Add basic Doxyfile.
Add doxygen-style comments to functions from os/fs.c.
Make FPC_* defines an enum type in path.h.
Add os_stat to os/fs module.
Refactor fullpathcmp.
Add unit tests for gettail.
Refactor gettail.
Move gettail_dir more closely to its usage.
Add unit tests for gettail_sep.
Refactor gettail_sep.
Add unit tests for getnextcomp.
Adapt getnextcomp to coding style.