Use portable format specifiers: Adapt/fix EMSGU/emsgu to use (uint64_t).

Problem

EMSGU macro was defined as the unsigned counterpart of EMSGN. This is,
invoking emsgu instead of emsgn and having a long_u argument instead of
a long.
But, surprisingly, emsgu was not defined anywhere, which didn't result
in an error because in fact EMSGU was not used (the only point in code
printing a %lu erroneously using EMSGN instead).

Solution

- Define emsgu.
- Adapt EMSGU macro to use uint64_t instead of long_u.
Use portable format specifiers: Case %lu - localized - EMSGU.

Problem  EMSGN was being used to print a format string using "%lu",
         which is incorrect because EMSGN casts its argument to int64_t.
Solution Use EMGSU instead.
vim-patch:7.4.274

Problem:  When doing ":update" just before running an external command that
          changes the file, the timestamp may be unchanged and the file
          is not reloaded.
Solution: Also check the file size.

https://code.google.com/p/vim/source/detail?r=1ee3fc5b40ae94c2a7fc5a62bca38d4f730f9bb2
Replace vim_free() implementation

This replaces the vim_free() implementation with a free() call and adds
a deprecated flag for the doxygen documentation.
replaced `vim_free()` calls with `free()` calls
removed `vim_free()` function
Use REGEXP_DEBUG to enable log-based regexp debugging

ENABLE_LOG is too broad to be used only to enable logging in regexp_nfa.c. Use
REGEXP_DEBUG instead.

ENABLE_LOG was defined by checking REGEXP_DEBUG in the first place.
Macro-based log utility for Neovim

This commit introduces 4 macros (for different log levels) that can be used
to log messages to $HOME/.nvimlog:

 - DLOG: log a debug message (e.g. `DLOG("sum(%d, %d): %d", x, y, sum(x, y));`)
 - ILOG: log some useful information (e.g. `ILOG("Main loop started")`)
 - WLOG: log a warning (e.g. `WLOG("Command not found: %s", command)`)
 - ELOG: log an error (e.g. `ELOG("Out of memory. Exiting.")`)

All these macros are disabled if `NDEBUG` or `DISABLE_LOG` is defined. This
guarantees that a `Release` build won't log anything.

`MIN_LOG_LEVEL` can be defined to reduce the verbosity of the log. The log
levels are:

```
DEBUG_LOG_LEVEL     0
INFO_LOG_LEVEL      1
WARNING_LOG_LEVEL   2
ERROR_LOG_LEVEL     3
```

`MIN_LOG_LEVEL` is 0 by default enabling all levels. If `MIN_LOG_LEVEL` is set
to 2, for example, only warnings and errors will be logged.

That's how the log looks like:

```
     DATETIME   LOG_LEVEL  FUNCTION  LINE  PID      FORMATTED MESSAGE

2014/05/01 23:46:14 [info @ main_loop:582] 44376 - Starting Neovim main loop.
2014/05/01 23:46:31 [info @ main_loop:582] 44400 - Starting Neovim main loop.
```
Introduce os_localtime_r() and os_get_local_time()

Replace localtime() with os_localtime_r() in `eval.c` and `undo.c`.
Prevent preserve_exit() from executing more than once.

https://github.com/neovim/neovim/issues/563
Merge pull request #644 from philix/log

Macro-based log utility for Neovim
coveralls upload should not fail the CI build

- swallow error code
Replace lalloc() with xmalloc()
No OOM error in make_filter_cmd()
Delete the lalloc() function
Remove 2-iteration loop for counting & copying characters in getcmdline
Remove 2-iteration loop for adding normal termcap entries

This 2-iteration loop was removed from check_map_keycodes()
Remove 2-iteration loop for check in mappings & abbreviations

2-iteration loop anti-pattern removed in check_map_keycodes()