Updated the Item package to support more features

added enchantments, redeisnged the item framework to make it more familiar to modders, as well as added much needed functionality. Why git decided that ItemBlock was renamed to ItemMetaData is beyond me though. I deleted the first and created the second
There's no reason to have `abstract` in interfaces