added include/aug.h, include/aug_plugin.h.

started the first draft of the plugin api.
essentially the idea is for a plugin to be
a shared object with at least an aug_plugin_init
and an aug_plugin_free function. the plugin
can register for callbacks at important IO
and screen events and control the screen
using the provided core api (in the form
of a struct with a bunch of function
pointers).
key_bind, terminal_dims api calls. screen dimensions change (winch) callback function
screen window api calls

added api calls to aug.h so that a plugin can allocate
space on the screen to present data to the user (for
example: a status bar at the bottom of the screen). also
added api calls so a plugin can allocate an ncurses panel
on top of the screen to interact with the user.
screen.c: use WINDOW *

modified screen.c such that stdscr is not used, but a full screen
WINDOW * called term_win is used instead. also added static screen
function prototypes.
added attr.c

attr.c is a utility module which translates vterm attributes to ncurses
attributes and vice versa. the intent is too take all attribute logic
out of screen.c and replace it with calls to attr.c in order to simplify.
forgot a wgetch change
simplify curses pair initialization

added routines to convert a pair of curses color
indices into a unique number which can represent the
pair. using this, the logic that initialized curses
color pairs in screen.c can be simplified by calling
functions from attr.c.
deleted color functions from screen.c

now screen.c uses the functions exported by
attr.c to handle all of the color and attribute
translation from vterm to ncurses.
added term.c: a small container for a VTerm object and some callback functions
moved some functions from aug.c to util.h
modify aug.c to use aug_term_t structure instead of VTerm * directly.

using aug_term_t simplifies aug.c and will make it easier to manage
more than one terminal in the future.
added resize function to term.c which resizes both the libvterm VTerm structure and the master pty file descriptor
added term_win.*

the functionality in term_win.c will allow screen.c to be
simplified by moving terminal window handling into term.c.
also moved win_contained into a new ncurses_util.h file.
forgot to add ncurses_util.h
moved terminal window handling out of screen.c

screen.c is meant to be the main interface to ncurses,
so let term_win.c handle all the terminal specific stuff
like updating cells etc and let screen.c focus on
managing windows, color and other ncurses stuff.
tmp stuff
arbitrary size/location of terminal window

working on making sure the term_win code works
regardless of the size or location of the terminal
WINDOW * on the screen.

fixed a bug where a 'set window size' ioctl was
getting executed when the term structure still had
an invalid (=0) master pty, thus sending a SIGWINCH
to the parent process and messing everything up.
miscellaneous refactoring
screen sets and unsets callbacks in screen_set_term

since there should be only one terminal calling the
screen term_win functions at a time, screen unsets
the callbacks for the previous term and sets the
callbacks for the new one whenever screen_set_term
is called.
Merge branch 'master' into plugin_api

Conflicts:
	src/aug.c

addition of term structure conflicted with
master branch. changed plugin_api stuff
to user new master IO functions and changed
master to user plugin_api term structure.