Fix a bug with layered properties

Properties can now be within other properties!
Rework the ItemPotion property, fixes #693

I realize half of this is inside the previous commit... git loves
messing with me.
Alway, potions now work perfectly :D