Remove broken latin1 terminal support

It can be added back later and done much more cleanly.
Change int parameter to bool
Use struct file_location in struct message
Move code to file-location.c
Key parsing cleanup
Cleaner way to show confirmation message
Add struct error
Change command parser to return error instead of printing it

Error can now simply be ignored when doing tab completion and there's no
need to clear error afterwards.
Reduce nesting in main_loop()
File locking cleanup
color/light: Missing builtin color
Add all buffers to single ptr_array

Now there's no need to loop over all windows to find buffer.
Make recording file history explicit

Replace close_all_views() with record_file_history() which is better
name. close_all_views() was confusing because it was called just to
record file history, not to free memory right before program
termination. It wasn't even freeing windows and that made the code seem
incomplete.
Remove WINDOW()
Change ptr_array_remove() to take pointer argument
Merge view_delete() into remove_view()
cmd_wsplit: Call open_files() instead of cmd_open()

open_files() didn't exist when cmd_wsplit() was written.
Use streq() instead of strcmp()
Separate window creation from adding to global window list
Add new_root_frame()