[C] Allow CraftInventory objects to be equal when underlying IInventory is equal. Adds BUKKIT-4110.

**The Issue:**

Currently, different Inventory objects are never considered to be equal even when they represent the same inventory in game.

**Justification for this PR:**

Accepting this PR will allow developers to compare like Inventory objects and get the results they would expect.  This is particularly useful when you are creating a custom inventory with ``Bukkit.createInventory()`` and then attempting to check if the inventory you created is the target inventory in something like an InventoryClickEvent (and probably other inventory events.)

As it stands currently, trying to make sure, in the aboves circumstances, that the inventory is the one you created is only possible with either non-ideal methods (``inventory.getTitle()``) and/or verifying that the viewer list of the inventory contains the correct players.  Neither such methods are very intuitive or effective at ensuring you're working with the correct inventory.

**PR Breakdown:**

This PR simply overrides ``boolean equals(Object)`` and ``int hashCode()`` in CraftInventory and delegates the call to the underlying IInventory object.

**Impact on Existing Code:**

As far as I can tell, inventories are never compared for equality in the CraftBukkit source.  I checked by searching for a variety of different word combinations and could find no matches.  At the same time, since the methods were not already overriden it would only make sense that they have had no usage as previously the equals method would only  check for object sameness which to me serves no purpose that I can think would be useful.

**Testing Results and Materials:**

Coming soon!

**JIRA Ticket:**

BUKKIT-4110 - https://bukkit.atlassian.net/browse/BUKKIT-4110