FAST: Do not block ourselves while decoding incoming messages

At the moment whenever we exhaust the buffer, we block ourselves
util new portion of data is received. This is done for all sort
of underlying sockets: both blocking and non-blocking. To benefit
from non-blocking operations, we should return immediately once
faced with difficulties retrieving the data. In this case NULL is
returned and the user is free to call fix_session_recv() again.
Subsequent calls will result in decoding only those fields that
were not decoded previously.

Signed-off-by: Marat Stanichenko <mstanichenko@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>