Armor Model Provider: Take 2

-Reimplementation of #417 with suggested changes
-Removed the IArmorModelProvider interface and just put the method in
Item instead.
-Added some important params (itemstack and entity)