Update /say to vanilla behaviour. Fixes BUKKIT-4224

Prior to this commit all /say command output would be a generic "[Server]"
prefixed line. This commit changes that by adding the source into the
message, such as a player. By doing this Bukkit more closely matches
vanilla behaviour and gives a more descriptive message to the client.
Fix missing closing bracket in addEnchantment. Fixes BUKKIT-4126

Prior to this commit the message would display as "...(given #, bounds
are # to #". This commit changes that by adding the missing bracket to
the end of the statement. This is strictly a visual error.
Use command block's world for /gamerule. Fixes BUKKIT-3274

In vanilla, gamerules are global, across all worlds. Maps created for
vanilla that use command blocks expect this behavior, which is broken
when they are placed on a world that is not the default world (world #0).

This commit changes that by using the command block's current world when
executing the command, forcing the game rules executed to be executed in
the world the command block is currently in.