[B + C] Improved HumanEntity#openInventory, Fixes BUKKIT-3690

#### Description:
CraftEntityHuman#openInventory(Inventory) is missing the code to deal with Anvil/Beacon/Trade inventory types, and if a unknown type is passed to it the method will fail silently.

#### Justification and breakdown
Any method should not fail silently if an error has occurred, and the new inventory types should be able to be opened via these methods. This PR adds the new inventory types to the switch statement to handle opening of them correctly, it also adds a default case at the end so any unknown inventory types will though a IllegalArgumentException.

#### Testing Results and Materials:
##### TestPlugin
(Plugin allows for opening of inventories by using '/&lt;inventory type&gt;')
source - https://github.com/thefishlive/Bukkit-test/tree/inventory
binary  - https://www.dropbox.com/s/p7hibwjqb2wqo4r/bukkit-test-0.1-SNAPSHOT.jar

#### Relevant PR(s):
B-882 - https://github.com/Bukkit/Bukkit/pull/882
Ticket: BUKKIT-3690- https://bukkit.atlassian.net/browse/BUKKIT-3690