s/GA_EMPTY/GA_EMPTY_INIT_VALUE/

I'm about to implement a `GA_EMPTY` macro that checks if the GA is empty or not.
Replace ga->ga_len > 0 checks with !GA_EMPTY(ga)

Used Coccinelle to perform the changes

```diff
@@
expression E;
@@

<...
(
- E.ga_len > 0
+ !GA_EMPTY(&E)
|
- E->ga_len > 0
+ !GA_EMPTY(E)
)
...>
```

`spatch --in-place --sp-file ga_empty.cocci <C_FILE>`
Replace ga->ga_len == 0 checks with GA_EMPTY(ga)

Used Coccinelle to perform the changes

@@
expression E;
@@

<...
(
// E.ga_len == 0 is isomorphic to !E.ga_len
- E.ga_len == 0
+ GA_EMPTY(&E)
|
- E->ga_len == 0
+ GA_EMPTY(E)
)
...>
Replace if (ga->ga_len) with if (!GA_EMPTY(ga))

Used Coccinelle to perform the changes

```diff
@@
expression E;
statement S;
@@

(
- if (E.ga_len) S
+ if (!GA_EMPTY(&E)) S
|
- if (E->ga_len) S
+ if (!GA_EMPTY(E)) S
)
```
Remove hardcoded type names from msgpack-gen.lua

Except for the `Error *` type, all parameter types are valid identifiers, so
reuse that LPeg rule.
Use `uintptr_t` as the hashtable type in helpers.c
Refactor API to use one integer type: int64_t

This should make the API simpler, and int64_t is enough to represent any integer
value we might need.

Range checks should be done inside the API functions, that way we can modify the
types of the actual fields/variables modified by the API without changes to the
API prototypes.
Use more descriptive names for API primitive types

Instead of exposing native C types to a public API that can be consumed by other
platforms, we are now using the following translation:

int64_t -> Integer
double  -> Float
bool    -> Boolean
Enable -Wconversion for API files and fix errors
Replace unnecessary `xcalloc` call by `xmalloc`
Fix `xmemdup` function signature
Removed `lalloc` prototype(again)

It was re-added by accident when resolving merge conflicts
Fixed outdated comment in option.c
clint: disregard compound literal return

This allows lines like:

return (my_struct_type) {
  .my_int = 5,
  .my_str = ""
};

Thanks to @watk for finding and fixing it!
api/helpers: implement C string to String helper

Use it in buffers.c
Implement vim_str(n)save using xstrdup and strncpy/xmalloc
Remove NULL/non-NULL tests after calls to vim_str(n)save()
Replace alloc() with xmalloc() and remove immediate OOM checks
Remove OOM checks: reverse_text()
Remove OOM checks: mf_alloc_bhdr()