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