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