Improvements in WorldManager

GetAllWorlds now returns a cached list of worlds which is checked against
a hashcode for validity. Previously a new unmodifiable collection was
returned on each call.
Implemented 2-Phase Plugin Loading

This fixes plugins not getting loaded before worlds.
The implications are that plugins in the early-loading phase
can not use any of the sub systems (such as warps and permissions) in the
enable() call.
Early loading is optional.
It can be specified via enable-early=true in the plugins Canary.inf