Fix the semantics of qread and fix printfs in ping.c

qread will block until there is something there.
qread should return whatever it's got once the queue is empty. I
had not realized that. With this change, ping now gets each packet
separately.

And, once ping is done, the kernel is locked up, sorry:
  CPU #0: pc=0xffffffffc034ddcc (halted) thread_id=8738
  CPU #1: pc=0xffffffffc034ddcc (halted) thread_id=8736
  CPU #2: pc=0xffffffffc034ddcc (halted) thread_id=8736
  CPU #3: pc=0xffffffffc034ddcc (halted) thread_id=8736
  CPU #4: pc=0xffffffffc034ddcc (halted) thread_id=8736
  CPU #5: pc=0xffffffffc034ddcc (halted) thread_id=8736
  CPU #6: pc=0xffffffffc034ddcc (halted) thread_id=8736
  CPU #7: pc=0xffffffffc034ddcc (halted) thread_id=8736

But this is still progress.

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>