Perform: Introducing propagation to CursorResponder events

Now every CursorResponder event returns a value that denotes whether the
event should be propagated or not. This is to ensure that events are not
dealt with more times than is necessary.
Perform: Abstracting Perform Layer into its own class.