Serialize ItemMeta inside an ItemStack

This patch attempts to add serialization and deserialization of the ItemMeta of an ItemStack - such that plugins can store Items without having to implement all the twiddly bits of an ItemStack.