Change the way a plan nodes are organized and fix TrainAction bug
- Snippet roots are connected to its satisfying goal with a dotted gray line to mark expansion
- Belonging case child nodes are placed before the snippet nodes where goal
- Goals are placed before actions
- TrainAction had a bug of locking a new trainee even if it is already locking a trainee which results in leaking the first trainee

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Destroy succeeded snippets and fix bug of UI and Engine thread out of sync cause UI crash
- Give messages a ToString method

Signed-off-by: MHesham <mhesham.fcis@gmail.com>
Merge pull request #132 from MHesham/master

Fix UI/Engine mulithreading bugs and fix planner/visualizer bugs