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.
Can you elaborate a little more one the intent here?
One thought I had was to create handles to the msrp application that would contain the database in use and all relevant variables. That way an "observer" could actually just be another instance of msrp.