Some simple fixes I wrote today; none of the mess

--Move the values representing stdin, stdout, stderr into an array of
  Value*
--Don't decrement the value refcount twice when freeing a varval
--Don't free anything but the name and struct in freeFuncDef
--Handling in evaluateBoolExpr for expressions with a logical AND or a
  logical OR
--This clever fix I just came up with to free the VarVal* holding a
  function's return value in descope and otherwise free normally
--Simplification of addDef and mulDef
--The return value of evaluateStatements at the root level is an
  already freed pointer
--writeDef should return falsevalue because there isn't any reason to
  return the string that was just passed to it.