Change autocommands from BufWin* to Buf*

- Local options are not able to be set during BufWinLeave (possibly a bug in Vim
  because it seems that they can be set during BufWinLeave).
- This was preventing local options from being restored when switching buffers
  within the VimRoom tab.
Combine set/clear local/global options into one function

- My logic for setting the local options were wrong, an option that's local to
  the window doesn't have to use setlocal to achieve that.  Set local just sets
  an option locally for a buffer in the context of the option (i.e. local to a
  buffer in a given window)
- Options that are local to a window should be set globally for that window
  because that window is a VimRoom window and all buffers opened in it should
  have the VimRoom window options until the user tears down VimRoom
Change scope for saved options which are local to window or buffer

- It doesn't make sense to save this options to a global script variable, they
  are bound to their buffer or window and should be saved to it.
Close VimRoom sidebars on a :quit command

- Clean teardown if the VimRoom window is quit, particularly if there are no
  other tabs open.  BufLeave and TabLeave won't be called in that case before
  Vim exits.
Clear and restore textwidth on BufLeave/BufEnter

- This is the only buffer local option that wasn't being cleared and restored.
  Window local ones don't need to be since the window will never leave the
  VimRoom tab (right...? lol)
Clear foldcolumn and colorcolumn in VimRoom