Unit test requesting presence of sourced data in the absence of broadcasting.

Sourced data from non-broadcasting sources will be used to merge data without collisions.
NOTE: Sourced data could be provided by default, at a small additional cost.
Sourced data is always provided when broadcast == false, even if there are no known recipients.
Add HasAll and GetAll methods to packet, to retrieve all decorated instances of a type.
Using atomic typedef in AutoSelfUpdate/
Add AutoMerge class. This collects all data of a specified type from a context.
Verify that AutoMerge satisfies the VerifyNonBroadcastOutput test.
Revised unit test to verify that broadcast and data piped to gather is collected, but data piped to other sources is not.
Pipe & Broadcast declarations Ignore AutoPacket type, since it is always broadcast.

When resolving all consistent types to pipe for A -> B, an AutoPacket argument in B indicates that all types sent by A might be referenced. Likewise, and AutoPacket argument in A means that all types requested by B might be supplied.

This enables the deduction of pipes from an initial call A::AutoFilter(AutoFilter&) or to a final call B::AutoFilter(const AutoFilter&).
Fixes incorrect attribution of data source to target.
Simplified AutoMerge and revised AutoFilterTest.VerifyMergedOutputs.
Merge pull request #110 from GabrielHare/feature-AutoMerge

Add AutoMerge feature