Add canEquip and canUnequip to Item class

These are very simple functions that give item classes the ability to control whether they can be equipped or unequipped by the players. They're meant not only for vanilla armor slots but also any equipment slots which other mods might add (for example Baubles).

This changes the following:
- Adds ```canEquip(ItemStack)``` and ```canUnequip(ItemStack)``` methods to Item class
- Patches player container to control equipping using shift-click.
- Patches armor slots to control equipping / unequipping.
- Patches ItemArmor to control equipping by using the item (right click).