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
Also: there isn't really a global type list. Each block has its own list of VARIANTs. And as already said above, we try to not expose any IDs where possible.