Merge branch 'dev' into ncurses-exp-support
add ncurses library.
add basic ncurses window impl.
move ncurses initialization to terminal.c
add dynamic array impl.
add utility function to create a dynamic array on the heap.
add utility funtion to get the length of a dynamic array.
remove array_init & replace it with array_create.
remove session_init & replace it with session_create.
remove & comment out code that is to be replaced with ncurses equivalent.
re-add application structure.
add documentation.

add documentation as well as remove some unneeded code after changing
to using ncurses.
remove application_idle function.

the idle function wont be used no more, as of the introduction of ncurses
we wont be processing data to be shown to screen on idle & instead do it
directly when data is received.
add function to bind together a session & window.
send output to session.
replace window_init with window_create.
init application term width/height in application_init.
add stdlib.h because of malloc.
replace active_session with active_window.
redirect user input to active window.