within_margin should be a double
use helper for scrolling so we can add work arounds for gtk bugs
scroll to insert when focusing widget
break out frame into private

just makes things easier to attack from another .c file.
tab: implement scroll helpers
add scroll up/down commands
add private to build
shrink floating bar text a bit
split tab private into its own header
wire up vim command bar
code-assist: short circuit if no local file is saved.
turn off background shadow for now
use menu for tab stack related operations
add helper for tracking unsaved buffer id

this is useful for naming files like "untitled 1".
cleanup makefile
track unsaved document number in tab.
use tab title as default in save dialog
document: implement loading and language guessing
tab: implement document loading
editor: bring back file loading