Added a new command dispatcher that injects different parameters dynamically.

This reduces the boilerplate code needed to parse arguments in each command, and reduces the need to maintain command documentation with @Command.

Example:

@Command(aliases = "/set", desc = "Set all the blocks inside the selection to a block")
@CommandPermissions("worldedit.region.set")
@Logging(REGION)
void setBlocks(LocalPlayer player, EditSession editSession, @Selection Region region, Pattern replaceWith) {
    // Perform command
}
Changed WorldEdit to use the new dispatcher.
Added support for platforms to declare capabilities.

Platforms can declare certain capabilities and a suggested preference
for the platform for each capability. WorldEdit can then choose
the best platform for a given capability.

Examples of capabilities include providing configuration, registering
game hooks/events, performing changes to the world, or checking
permissions/authorization.
Updated events to choose the best platform for certain tasks.
Updated /we version with platform information.
Merge commit '142f5c8e5c889ee5098c05ba2fde20b52467c1df' into feature/platform-caps
[Forge] Add slash to location of defaults folder to allow locating of worldedit.properties file.
Changed command pipeline to use Actor over LocalPlayer.
Removed command binding classes to internal package.
Cleaned up BiomeCommands and made better use of new command framework.
Fixed command logging regression caused by merge.
Moved other command handler related classes to the internal package.
Actor should not have getWorld().
Changed instances of Pattern, Mask, etc. to newer versions.

Most affected is the brush code.
Fixed issue where the use of non-existent subcommands had no response.
Changed CommandPermissionsHandler to use Actor.
Fixed 'break' being 'return' in LegacyCommandsHandler.
Call createProxyActor() on command Actors.
Removed use of @Nullable in ParametricCallable.
Removed LocalPlayer from commands and removed various uses of old Mask and Pattern classes.