[B+C] Added Locale API. Adds BUKKIT-2220, BUKKIT-4507

##### The Issue:
The Bukkit API has no possibility to access the Settings from the Client. This PR adds a LocaleManager for Plugins and a Event which gets fired when the Client changes its Settings.

##### Justification for this PR:
Adding Language and other Settings to the API will help Plugin Developers providing more customised Texts for the Players.

##### PR Breakdown:
Adding a LocaleManager which holds the loaded Languages for a Plugin
Adding a PlayerSettingsChangeEvent which gets fired when the Client Settings change. It reflects the View Distance, the new Locale and Chat Settings.
Added a Locale Enum to get a List of all Languages which can be selected in the Client
Added a ChatMode Enum to reflect all possible states of the Chat

##### Testing Results and Materials:
For testing i made a Little Plugin which loads in two Languages and greets the Player based on his language Setting. Source: https://github.com/geNAZt/LocaleTestPlugin

##### Relevant PR(s): 
B-#### - https://github.com/Bukkit/Bukkit/pull/#### - The new API for the Locales and Settings
CB-#### - https://github.com/Bukkit/CraftBukkit/pull/#### - Extended the EventFactory and the CraftPlayer to get the Locale and Settings

##### JIRA Ticket: 
BUKKIT-2220: https://bukkit.atlassian.net/browse/BUKKIT-2220
BUKKIT-4507: https://bukkit.atlassian.net/browse/BUKKIT-4507