refactor the comminucation part, both on framework, and dummy_task

Hi, 

This is something I did on the airplane.  This might introduce some overlap with Hongchao's latest change, but I will put this out so that you guys can decide whether to use this or absorb this into Hongchao's pr. 

1. Feel like UserMeta is not needed as we framework need is a string, so we can do way with the interface which all it does it serialization.

2. remove testabletask so we should use dummy_task / tree_topo for regression testing.

3, remove the 	// These are called by framework implementation so that task implementation can
	// reacts to parent or children restart.
	ParentRestart(parentID uint64)
	ChildRestart(childID uint64)

	ParentDie(parentID uint64)
	ChildDie(childID uint64)
  as it complicate things. We should stay focused on stateless task first. This is pulled inspired by Hongchao's current pr, and thanks to Yi's questions.  I put this in so that I can cleanup the dummy_task implementation.