convert server task into a real class, instead of a dict

more readable code, more difficult to break protocol backward compatibility
fix tests
convert preprocess task dict to class
minor stylistic change
compiler info dict to class
take CL environment variable into account
add test for environment argv
fix silly client bug
doc update
add more options for building Boost
display exception message on failed client run
forgot to git add starter script needed by installer
minor stylistic doc changes