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
update CONTRIBUTING.md
Update CONTRIBUTING.md with current info

- Finish what @ashleyh started.
- Add section for Getting Started with Neovim.
- Add section for commit messages.
- Trim down on wording to keep it short.
Add const qualifiers to parser/ex_commands.c

TODO: fix various places where constant values are assigned to, add const 
      qualifiers to other code used by parser so that defines with casts are not 
      needed.
Merge branch 'master' into luaviml

Conflicts:
	src/memory.h
	src/misc1.h
Remove need to set zero byte for replace_termcodes