New implementation for polymorphic chaining
New implementation for polymorphic chaining

-This version has all of the debug messages left in, next commit will remove them
-Algorithm description provided in comments
-relates #354

abutcher-gh/cereal,adasworks/cereal,adasworks/cereal,abutcher-gh/cereal,USCiLab/cereal,USCiLab/cereal