[B] Handle BlockCommandSender for /gamerule. Fixes BUKKIT-3274

### Issue
The GameRuleCommand checks if the CommandSender is a HumanEntity, and if so, applies the GameRule to the world that they are in. However, this is not done for Command Blocks, so a Command Block always affects world 0 with a /gamerule command.
### PR Description
An else-block is added to the `instanceof HumanEntity` check of `getGameWorld(CommandSender sender)` that checks `instanceof BlockCommandSender` and returns the world from the block.
### Justification
A Command Block, unlike the console, has world context, and there is no good reason to not use it.
### JIRA
https://bukkit.atlassian.net/browse/BUKKIT-3274