An immutable item API is necessary for us to replace bukkit's item api.
We should use inheritance, so items inherit from an abstract 'Item' class, avoiding the ItemMeta disaster.
With builders and withers, its an easy one-liner to construct them, even though they are immutable:
Item.builder(server, Materials.TACO)
.tasty(true)
.addEnchantment(EnchantmentTypes.SUPER_YUMMY, Integer.MAX_VALUE)
.build()