Linux udev events

1. Change setUp in events to return a status. This will let the publisher to prevent the runloop from starting if something went wrong in the setUp. 
2. Add Linux udev events and a simple `hardware_events` table to linux.