Made EventHandler::connect return std::unique_ptr

EventHandler::Connection currently has no default constructor, and cannot be
stored as an uninitialized member variable. Hence return
unique_ptr<EventHandler::Connection> to allow this.