recv: read from device using gen_server

Add a way for devices set in {active,false} mode to read data via the
gen_server.

Devices in {active,true} mode receive data as messages. Imitate gen_tcp
and return {error, einval} when an active device attempts recv/1,2.