Perform fully recursive serialization of ItemStacks. Fixes #39

This fixes ticket #39 by serializing the Color inside of LeatherArmorMeta, as seen in this stacktrace excerpt:
```
22:24:42 [SEVERE] Could not call method 'public static org.bukkit.inventory.meta.ItemMeta
org.bukkit.craftbukkit.v1_6_R2.inventory.CraftMetaItem$SerializableMeta.deserialize(java.util.Map)
throws java.lang.Throwable' of class org.bukkit.craftbukkit.v1_6_R2.inventory.CraftMetaItem$SerializableMeta
for deserialization

java.lang.IllegalArgumentException: color({red=25, green=25, blue=25}) is not a valid class org.bukkit.Color
```

We may want to also provide a new Serializer using the BukkitObjectOutputStream that Wolvereness recently committed.