Use consumer fd reference in consumer socket obj

This is done so we don't copy the fd value of the consumer thus having a
central control. This is part of a set of patches that makes the session
daemon stop sending command to an invalid consumer (dead, closed).

Signed-off-by: David Goulet <dgoulet@efficios.com>
Use single callsite for send/recv ops. for consumer in sessiond

Signed-off-by: David Goulet <dgoulet@efficios.com>
Lock consumer data before fd check during destroy

Also, a consumer state error is added just before update UST
applications on registration.

Signed-off-by: David Goulet <dgoulet@efficios.com>