[C+B] Implemented ban reason support into /ban. Adds BUKKIT-4285.

The Issue:
Bukkit does not have /ban reason support, so this CraftBukkit pull request adds API so that I can do it in my Bukkit pull request here: https://github.com/Bukkit/Bukkit/pull/991

Justification:
The ban command justification for the other PR:
This pull request implements ban reason support into /ban, so you can type /ban Example ExampleReason, like in vanilla.

For this PR:
This pull request is the implementation for the setBanned API in my other pull request.

Breakdown:
The ban command breakdown for the other PR:
By making a string named banReason, the command will check if the args >= 2 and if not, does nothing at all, if so, it will define the variable as a String that the sender sets. Then, once the ban takes place, it will check if there is a reason. If not, it will say the reason is "Banned by an operator.", if so, it provides the reason set!

For this PR:
By creating a new setBanned() method: setBanned(String reason, boolean value) plugin makers can have reason support without having to create the API in their own plugin.

Ticket:
https://bukkit.atlassian.net/browse/BUKKIT-4285 (not mine)

Relevent PR's:
This is a different way of implementing ban reason support, so incase #935 won't get merged I've made this one.
See my Bukkit PR here: https://github.com/Bukkit/Bukkit/pull/991

I apologize if I'm not doing this correctly, this is my first pull request.