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.
It's certainly very convenient if the natural boundaries of the code fall on compilation unit boundaries, but my solution to that would be to create a `msrp_parse.c` to hold the parsing unit, and then the `msrp_event()` function could be interposed without this little rename operation.

My thinking on this dividing line is that msrp_recv_msg() currently transforms a PDU into the relevant events, and then msrp_event() takes events from both the parser and mrp and takes action on them, which includes updating the database and running mrp state machines. The boundary between *creating* events and *acting on them* is a natural unit boundary, so that's where I inserted the test.