Added Peck payload unit test; test passes

Also had to change quite a bit, especially in the Peck payload handler.
Added another Peck unit test

Now there are 2: device recognized, and device not recognized
Note: the peck unit tests sometimes hang. I'm not sure why yet, but it
seems like when one hangs, both hang, so there is probably a very good
reason for it
I seem to have fixed the hang error in the tests

Sometimes the last byte would be EOF. I don't know if this is a problem
of dropped data or if it's normal. More investigation is required.
Added optional locks to serial/tcp I/O stubs

This creates a more realistic simulation, and it solves the hanging
problem I was having. I was reading/writing non-ASCII data, and was
looking for an EOF. This, combined with not initializing part of the
structure, led to sporadic hangs when the packet was incorrectly
discarded.
All parts of the peck payload are init'd in test