Remove `alloc_clear`

Use `xcalloc` instead.
Inline `alloc_tv` and `alloc_string_tv` in eval.c
Remove code and checks for unsupported systems.

Remove remnants of support for systems including
__EMX__, MSDOS, OS2, AMIGA and MORPHOS.
Call to list_append_dict cannot fail.

Clean up the use of list_append_dict and remove error checks.
Call to list_append_string cannot fail.

Clean up the use of list_append_string and remove error checks.
Remove useless modelines (pt2)
Use portable format specifiers: Case %ld - plain - sscanf.

Fix uses of plain "%ld" within sscanf():
- Replace "%ld" with "%" SCNd64.
- Create (int64_t) local variable and sscanf into that.
- Safely downcast into previous type (introduce assertion, to be removed
  when variable type refactored).
Fix garray.* according to -Wconversion
Use portable format specifiers: Clarify some casted expressions.

Though correct (to my understanding), some of the casts introduced in
previous commits could lead to confusion, by casting only the first
expression component instead of the whole expression.

This fixes that, parenthesizing casted expressions, except where
operator precedence rules make it unneccesary.
Use portable format specifiers: Improve arguments formatting.

At some places, printf-like function's arguments styling could be
improved to enhance readability.
vim-patch:7.4.264

Problem:  Can't define a function starting with "g:". Can't assign a
          funcref to a buffer-local variable.
Solution: Skip "g:" at the start of a function name.
          Don't check for colons when assigning to a variable.

https://code.google.com/p/vim/source/detail?r=00acac0af680c2d8c82db5258474b121a5908926
Hold java packages to speed up build
README: Use SVG badge for Travis
vim-patch:7.4.265

Problem:    Can't call a global function with "g:" in an expression.
Solution:   Skip the "g:" when looking up the function.

https://code.google.com/p/vim/source/detail?r=8ec9d2196bee0c5108f2d2c196a660a7f4e5f29f
vim-patch:7.4.241

Problem:    The string returned by submatch() does not distinguish between a
            NL from a line break and a NL that stands for a NUL character.
Solution:   Add a second argument to return a list. (ZyX)

https://code.google.com/p/vim/source/detail?r=a63d0cd691dc925283815d17d62f4e948d723a59
path: add 'garray.h' to headers

The function prototypes use garray_T* arguments, but the header is not
included in path.h. Technically we could also get away with a forward
declaration since we're just using the pointer, but I don't see the urgent
need for that.
test: fix the cimport method

This commit will hopefully allow the cimport method to be used just as one
would use #inclue <header.h> in C. It follows the following method:

1. create a pseudoheader file that #include's all the requested header files
2. runs the pseudoheader through the C preprocessor (it will try various
   compilers if available on the system).
3. runs the preprocessed file through a C formatter, which attempts to group
   statements on one line. For example, a struct definition that was
   formerly on several lines will take just one line after formatting. This
   is done so that unique declarations can be detected. Duplicates are thus
   easy to remove.
4. remove lines that are too complex for the LuaJIT C parser (such as:
   Objective-C block syntax, crazy enums defined on linux, ...)
5. remove duplicate declarations
6. pass result to ffi.cdef
test: no longer define ad-hoc C headers

With the improved cimport helper, we can just load what we want.
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/.neovimlog:

 - 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.