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.