fix usage of NULL
remove bogus rebuildall mode
add boilerplate for update mode
mark_finished: use is_installed rather than direct list access
simplify is_installed()
write complete installed.dat on every finished package
use struct for installed_packages
get_installed_packages(): use stringptrlist_fromfile()
Revert "get_installed_packages(): use stringptrlist_fromfile()"

This reverts commit 68143242d2a1e3308248f098d6180cdabdb5edc7.

i decided to put name/hash into installed.dat
(previous idea was to put them into distinct files)
add update functionality
add update to syntax list
fix argc check
if encountering an old installed.dat, rewrite it
Makefile: use -g3
free bug: the element being pointed to changed by using sblist_delete