Implement `vim_get_option` API function

The `get_option_value_strict` function from the upstream source was
reintegrated for this.
Implement `vim_set_option` API function

The `set_option_value_err`, `set_option_value_for` and
`unset_global_local_option` functions were re-integrated from upstream.
Implement `vim_{out,err}_write` API functions
Implement `vim_get_buffer_count` API function
Implement API buffer switching functions
Implement Window/Tabpage switching API functions

Also moved `find_buffer` to 'api/helpers.c' and removed unnecessary declaration
in 'window.h'
Implement `buffer_get_length` API function
Implement `buffer_get_slice` API function
Implement `buffer_set_slice` API function
Refactor buffer get/set line API functions

They were implemented on top of the get/set slice functions
Implement API functions for deleting lines
Implement buffer_{get,set}_var API functions
API: Implement buffer_{get,set,del}_option
API: Implement buffer_{get,set}_name
API: Implement `buffer_insert`
API: Implement `buffer_is_valid`
API: Implement `buffer_get_mark`
Add new files to clint and fix reported errors
API: Implement `window_get_buffer`
API: Implement window_{get,set}_cursor