Optioned Commands

Makes commands use a system like this:

/scatter -w worldname -r=1000 --mindist=100000 extra arguments

Supports the following system:

```java
@CommandMethod(command = "name", options = true)
public void command(CommandRequest request)
{
    request.sendMessage(request.getOptions().valueOf("-t"));
}

public String[] command(OptionParser parser)
{
    parser.accepts("t").withRequiredArg().describedAs("Word to repeat");
    return new String[]{"t"}; //return the required options
}

@CommandMethod(command = "noarg")
public void noargcommand(CommandRequest request)
{
    request.sendMessage(request.getFirstArg());
}
```

With the examples above the following would happen:

`/name -t=print` => `print`
`/name -t print` => `print`
`/name --t=print` => `print`
`/name` => `prints option info`
`/noarg something` => `something`

Removes the old routes system, makes things less configurable for a much neater and understandable system for both the command user and code reader