(1)  Added a new package util, containing a single class StreamUtil. Can dump all constants (messages etc.) and helper methods here.
(2) Minor change in StreamIO's saveLogFile: use general class List instead of ArrayList. also added author tag there.
(3) StreamObject: added a method to get # of tasks, and another to get and set ordering of tasks. Now we are ready to implement some form of ordering!
Refactored and re-organized the Stream class.
(1) Main and processAndExecuteInput is separated to doRoutineProcess -> processInput -> executeInput to follow SLAP better.
(2) Rewrite some of the Javadocs and also added author tags.
(3) Changed visibility: hasTask is package level (used only in testing), main and processInput are both public, everything else private.
(4) Found a bug in undo: if we delete and undo, the recovered task is not added in its previous index number (disaster!). Solution: maintain an ordering stack and on top of recovering the lost task, also recover the ordering.
(5) Added more assertions.