Switched to using factories to create ProtoTest and ProtoError objects.  This both avoids unnecessary object copies as well as making it much easier to unit test.