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
Fix comment typo.
Improve map module: Add to clint and CONV_SRCS
Improve map module: Fix implementation of map_has
Improve map module: Change scopes

- Move `Map` structure definition to `map_defs.h`
- Use `KHASH_DECLARE` on map_defs.h to declare khash function prototypes.
- Redefine `map_foreach` into a macro
- Refactor server.c module to use the new `map_foreach` macro.
Improve map module: Refactor into a macro library

The map_* declarations and definitions are now created by a macro invocation
with a key type parameter. Also refactored server module to use the updated
version.
Improve map module: Refactor vim_to_object_rec

Now the map.c module is used to implement the 'lookup set' for that function