separate abstract interface EventListener from Widget
The rationale is that some non-widget modules like ReaderKoptListener should be able
to handle events.
rename ReaderKoptinterface to ReaderKoptListener & save zoom mode to normal_zoom_mode
remove default options in KoptOptions and CreOptions
add gamma correction for pdf/djvu reader
set zoom mode to contentwidth after rotating screen to landscape
As most pages are portrait there is no reason to fit "portrait" page
on "landscape" screen. And "pagewidth" is used less often than "contentwidth".
So "contentwidth" is choosed to set zoom mode on landscape screen.
remove arguments of RestoreZoomMode events defined in KoptOptions
Now zoom mode restoration is handled by ReaderKoptListener
cleanup: lookup reader view states like pageno and screen offset directly in self.view
add bbox adjust by panning gesture
use eight anchor points to adjust bbox
Including the vertices and the midpoints on each edge of the rectangle.
keep bbox in page area
confirm and cancel gestures in cropping dialog are replaced by OK/Cancel buttons
Now only "tap" and "pan" gestures are allowed in cropping dialog.
Merge pull request #763 from chrox/event_listener

separate abstract interface EventListener from Widget