Don't try to process frames shorter than 1 byte

Otherwise, the code would be driven by (possibly) random values in flags
and dst fields.
Remove redundant test

The same is already tested above.
Check the source of REQ_CHALLENGE message

It should always be the key server. Otherwise we ignore the message.
Fix processing of REQ_CHALLENGE messages

It was broken, because it reacted on CHALLENGE message instead of on
REQ_CHALLENGE. Moreover, return value was not set corecly. If the message
is not from the key server or have wrong length, we should return UNKNOWN.
Simplify REQ_CHALLENGE handling

Also return UNKNOWN when fwd_id is invalid.
Improve 1signal test

- print all frames (ala macanmon) - good for debugging
- exit on first received signal