* Implementation of FakeSubSocket and FakePubSocket using eventfd with support for one-in/one-out synchronization
* Expose FakeEvent to Python
* Add demo showcasing synchronization between processes
* Fix linter errors
* Expose more FakeEvent APIs in Python bindings
* Add FakePoller implementation
* Remove suffix from poll env vars
* Set poller timeout to zero when events are enabled
* Replace poll with ppoll. Add invalidation methods
* Fix lint issues
* Fix comment indent
* Remove fake_demo
* Remove FakePubSocket. Simpler FakePoller implementation. Ability to wait for multiple events
* Rename FakeEvent to Event and move it to event.cc
* Rename event purpose constants in py
* Add support for timeout in wait methods
* Add tests for events and fake sockets
* Fix lint errors
* Add zmq sleeps
* Temporarly disable TestFakeSockets on ZMQ
* Add exception type specifiers to test_fake
* Event Manager implementation
* Fix fake sockets tests
* Update EventManager API
* Add test for enable/disable
* Add tests for cereal prefix
* Remove EventPurpose from python bindings
* Fix lint issues
* event_state_shm_mmap implementation shared by EventManager and FakeSubSocket
* Rename EventManager to SocketEventHandle
* More renames
* Added getters
* extra service to ack messages in process replay
* fix allAliveAndValid ignoring ignoreValid services
* check if readers are updated
* default message valid true