Add MetadataProvider for on-demand metadata. Fixes BUKKIT-3625.

Metadata Providers are a new "dispatch" type system for allowing metadata to
be done truly on-demand, via calling into a contextual "provider" when metadata
is requested. Through use of generics providers can be registered for a large
range of bukkit types and they will be dispatched to the providers which respond
for those specific types.

    * Created provider interface
    * Added unit tests for provider usage
    * Updated bukkit.Server interface with method for getting manager.
    * Updated bukkit.Bukkit with static implementation
    * Update generic type requirements of MetadataStore
    * MetadataStoreBase now gets data from providers.
    * Make OfflinePlayer Metadatable for consistency and generic guarantees.