Titled HumanEntity#openEnchantingTable API

While it is currently possible to create any inventory using Server, it is not possible to bind it to an arbitrary location in the world, while simultaneously providing a custom title. This PR rectifies this by adding a new method to HumanEntity's Spigot specification. Usecase: I am building an enchanting plugin that makes heavy use of custom enchanting tables, and I need it to be bound to a location other than the player's. This is already possible via reflection, but a more permanent solution may be more reliable and useful to others.

Unfortunately, this PR introduces some duplicated code, which has been commented accordingly. This was done in order to properly implement the Spigot-API contribution spec.