Adding callback for completed ddp messages

This commit adds callback support for completed ddp messages received. Whenever an update occurs, both the collection and data (message) is sent to the callback for that collection.

If there are any problems, or this doesn't follow expected usage patterns, please let me know and I will make the necessary adjustments.

Tests in commit describe usage.