Refactored and extended test double code; added PDU tests

This is some work-in-progress on MRP test cases I wanted to put 
up for comment before I go too much further along this path. My
goal was to make minimal changes to the code under test, but to
get enough instrumentation to isolate the packet parsing code. 

I moved the test double code that stands in for mrpd's functions
into its own files, mrp_doubles.c|h. I extended several of them to
track the calls made by the application during tests. I also
started a test group for PDU parse tests and added test double
infrastructure to observe the parse results fairly directly.
I think I understand the intent (and agree) but I'm still not 100% sure of the approach. If you wish to test parsing as a standalone set of tests, wouldn't the correct approach be to catch parse output by replacing mrp.c. This would involve catching the attributes and event that the parsing process creates and intercept them before they get to the applicant and registrar state machines. Perhaps this is already part of your plan?