API Fixes: Generalize buffer, window and tabpage types/functions

- Extract remote types definitions into a macro
- Extract msgpack_rpc helper functions for remote types into a macro
API Fixes: Add macro infrastructure for typed arrays

- Add macros supporting typed arrays in the remote API
- Refactor StringArray-related functions on top of the new macros
API Fixes: Change the integer type of remote objects to uint64_t
API Fixes: Use UIDs for buffers, windows and tabpages

- Define specialized arrays for each remote object type
- Implement msgpack_rpc functions for dealing with the new types
- Refactor all functions dealing with buffers, windows and tabpages to
  use UIDs instead of list indexes.