Working implementtation of non-blocking recv

recv! and recvfrom! report EAGAIN and EWOULDBLOCK as terminal
errors. using select with a 0 timeout avoids that.
Import some code

 - Imported a FSA macro by SHRIRAM KRISHNAMURTHI from
   http://cs.brown.edu/~sk/Publications/Papers/Published/sk-automata-macros/paper.pdf
 - Imported some co-routine macros by andy wingo

  Should prove useful for doing things properly
Add more options to start server

Thinking out loud really.