add CompositeWebTask#append

allow later changes to the list of subtasks
fix CompositeWebTask

Arrays.asList returns a fixed-size list
=> when CompositeWebTask is initialized with it,
NullTask is a singleton
add RunnableTask interface, SingleUserInteraction as a concrete class
tiny fixes
update sample to use RunnableTask