Refactoring the TreeBehavior to have less repetitive code
Cleaning up some code
Strating to implement removeFromTree
Fixed removing a middle node from the tree
Added test for removing a root from the tree
There was no use for _getMin, so removing it
Only accepting entity for custom methods in the TreeBehavior.
Implemented a non-recursive version of moveDown
Implemented a non-recursive version of moveUp
Fixed CS issues
Removing dead code
Adding typehints
Nitpick
Removing duplication
Merge pull request #3241 from cakephp/3.0-tree-behavior

3.0 tree behavior pt. 2
Make Project and Plugin tasks extend BakeTask.

Using BakeTask as a base class will be required for bake to autodetect
tasks.
First pass at building task autodetection.
Add task discovery to BakeShell.

Bake will now autodiscover any tasks that subclass BakeTask and load the
as Tasks. This makes bake easier to extend and customize.

Refs #3249
Wire help and informational output to detected tasks.
Remove one of the interactive questions in plugin bake.

Bake is becoming less interactive as it makes the code less complex to
work with and easier to maintain/use (imo).
Update help text for several bake tasks.