Refactored permission path resolving

Now 100% more awesome!
Updating JUnit to v4 + permissions unit test
Fixing up permission logic.

* Changed handling of adding new permission paths.
* Changed permission logic to make more sense

NOTE: Permissions have a unit test now. If you change stuff in it,
make sure the test will still pass.
Refactored command parenting logic

Now 100% less stupid.
Moved the parenting into CanaryCommand to avoid all those crazy-ass for
loop constructions all over the place.
Also shortened the code a bit. Makes for a far more readable
command manager.
Changed Tab Complete retrieval

TabComplete annotation now contains a list of aliases it can be applied
to. The TabCompleteHelper now can generate dispatchers from a
CommandListener and a list of aliases.