FIX: Use non-blocking recv()

Switch to non-blocking recv() in FIX receive path.

Running the FIX engine latency tests:

  $ while true; do taskset -c 0 tools/fix/fix_server -m 1 -p 7070; done

  $ while true; do time taskset -c 2 tools/fix/fix_client -m 2 -h localhost -p 7070 -n 100000; done

Shows 30% reduction in round-trip times:

  Before:

    Round-trip time: min/avg/max = 30.0/31.9/2159.0 μs
    Round-trip time: min/avg/max = 30.0/31.4/458.0 μs
    Round-trip time: min/avg/max = 29.0/31.3/880.0 μs
    Round-trip time: min/avg/max = 29.0/31.3/2737.0 μs
    Round-trip time: min/avg/max = 29.0/31.2/1035.0 μs
    Round-trip time: min/avg/max = 30.0/31.3/973.0 μs

  After:

    Round-trip time: min/avg/max = 22.0/22.9/451.0 μs
    Round-trip time: min/avg/max = 22.0/22.4/450.0 μs
    Round-trip time: min/avg/max = 22.0/22.6/448.0 μs
    Round-trip time: min/avg/max = 22.0/22.4/451.0 μs
    Round-trip time: min/avg/max = 22.0/22.5/443.0 μs
    Round-trip time: min/avg/max = 22.0/22.4/442.0 μs

Signed-off-by: Pekka Enberg <penberg@iki.fi>