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
Remove cryptography

As discussed in #694, vim encryption uses old,
obsolete algorithms that are poorly implemented.
Since insecure cryptography is worse than no
cryptgraphy, the community voted in favor of
removing all crypto.

Various alternatives to the old crypto is
being discussed in #701.

Closes #694.