Pump and CascadingHelper support for dynamically detecting serialization tokens

This adds a new interface for Functions and Filters to implement that allows them to return a list of known emitted classes. Pump then provides a method for traversing the pre-assembly pipe graph to collect all emitted classes. The results can be passed to a new method on CascadingHelper, withTokensFor, which will assign tokens appropriately.