[BREAKING] Shift plugin initialization; Addresses BUKKIT-1788

This reverts commit ae4f1c05d825e232d7fc0483639ba65ad54d2db4, restoring
commit 27cb5e7c9c6b2cfc5419262df75d89bc6bfe7879 (mostly).

Shared class loading was removed as an explicit feature in the plugin.yml,
as all plugins implicitly share class loaders already.

Some deprecated, internal functionality is now (package) private, namely
some sections pointed out in 203de4180b40f069d2c175d763476bd4ce338c76.
Add method to get plugin by its class. Adds BUKKIT-5240

Currently, the only way to get a plugin is by name or using a static
variable. This adds two methods to get a plugin based on its classes,
utilizing the plugin classloader.
Add unit tests for org.bukkit.util.StringUtil
Use region matching instead of sub-strings. Addresses BUKKIT-5275
Fix some messages

Addresses BUKKIT-5272, BUKKIT-5282, and BUKKIT-5283
Merge pull request #2 from Bukkit/master

Merge changes from Bukkit:master