Set up EventDispatcher class

- Set up EventDispatcher class
- Use std::bind and std::function to pass the listener functions
- Let UIComponent inherite from EventDispatcher so the UI item can
trigger the events
- Replace the global function in MainScreen by its member function