Some fixes for serializing Lists and Objects

This addresses an issue that came up when using the StarterKit plugin,
which serializes ConfigurationSerializeable objects that contain Lists
of ItemStacks.

This change fixes the issue, and the StarterKit plugin works correctly,
even for giving items with custom data. I've also been testing with the
Shopkeepers and dtlTraders plugins, both of which save ItemStacks to
YAML and now work with custom item data.

I've added test cases for several complex use casts of serializing
Objects, Lists and Maps, including nested ItemStacks inside of custom
ItemStack data or to YAML.