Verifying that type satisfaction does not include casting to parent types.
Unit test specifying data pipe declarations following the RAII model.

TODO: Two other uses cases are:
- Pipelined insertion of data modifying element
- Empty-context injection as a pass-through place-holder
Stubs for Auto*Pipe RAII
Removing unused AutoPacket::m_prior
Adding members for data pipe information to arguments.
Adding AutoFilterDescriptor methods to query argument disposition by type.
Adding AutoFilterDescriptor methods to make IO without using the argument type enum.
Creating Broadcast and Pipe declaration methods in AutoPacketFactory.

PROBLEM: These changes assume that type is equivalent to AutoFilter instance, and will not play well with NewAutoFilter.
Revised data pipe tests to use AutoPacketFactory methods.
Removing untenable RAII AutoFilterPipe classes.
Revising AutoSelfUpdate to use MicroAutoFilter.

NOTE: NewAutoFilter is deprecated, since it violates the equivalence of AutoFilter type to C++ type.
Adding specialization of std::hash for variadic std::tuple.

NOTE: This is required because:
- AutoPacket needs to distinguish decorations by both data type and source type
- std::tuple is required in order for the pair of types to be sorted and compared.
- The boost implementation of a generalized hash should be avoided if possible.

PROBLEM: It may be the case that this definitions collides with the boost definition.
Made DataFlow a public class, changed default to no output, and changed GetDataFlow to return the meaningful default when the requested type matches no argument.
Generalized AutoPacket methods to attribute data to a source.

TODO:
- Enable DecorateImmediate to be attributed.
- Ensure that SatCounter decrements are conditional on the attributed source.
Amending unit tests to demonstrate check for possible bug: multiple calls to methods with optional arguments.
Adding type_info to DecorationDisposition.

NOTE: This will be needed in order for the decoration disposition to provide this information to the satisfaction counter.
Adding conditional decrementing of satisfaction counters.

NOTE: Passes all tests, but all enabled tests are for broadcast data only.
Separating out the DataFlow struct.

NOTE: Separation is required in order to avoid circular dependencies when used by AutoPacket.h
Modifying AUtoPacket::CompleteCheckout to include source-specific decorations.
Merge remote-tracking branch 'fork-ghare/bug-context-notify-posthoc' into feature-DeclareEdge