initial commit
refactor to package
add start script
add gitignore
change Task.children dict to list
when Task.parent set, check loop and depth