alcove_drv:event/4: return {error, timedout}

Fix dialyzer warnings. Since the return value from event is the huge
mess of values from the port, a timeout cannot be distinguised.

The return value of event should be changed to:

    {alcove_drv:type(), [integer()], reply()} | 'false'
    {alcove_drv:type(), [integer()], binary()} | 'false'
alcove_drv:event/4: simplify the interface

Return a tuple from event/4. Modify alcove:event/1,2,3 to:

* only request event types
* return the data portion of the tuple

Probably alcove_drv:event/4 should be renamed and a new event function
that returns the data should be added.