and have more confidence with the unit testing framework.
Now `make testfront` won't retry on failure and testing files are
ordered in each run so that it's possible to reproduce testing failure.
And this patch also fix flush settings not working before suspend issue:
at some point the `FlushSettings` event is sent to `UIManager` instead
of `ReaderUI`, but `UIManager` only delegated events to active widgets
and `ReaderUI` is actually not an active widgets thus will miss the event.
This patch also add a verbose debug mode with "-v" as a switch to turn
on this mode. With verbose mode on, event handling will be logged.
And fix several other bugs introduced in #2028:
1. hint messages are back instead of the "Demo hint"
2. cursor now only presents in the focused inputbox in a multiinput dialog
3. moving cursor now works in multiinput dialog
bring back the old behavior: when width and height are set and all the
zooming options are false, zoom the image to that size. The last commit
to Imagewidget.lua caused it ignores the set width and height and use
the image's original size instead when no zoom option is set. This
caused #1979. Although #1979 can be fixed by setting autostretch=true,
but I think it's good to fix here.
to make koreader on Android more stable
and with these opt params:
```
require("jit.opt").start("sizemcode=64","maxmcode=64", "hotloop=10000")
```
The strategy here is that we only use precious mcode memory (jitting)
on deep loops like the several blitting methods in blitbuffer.lua and
the pixel-copying methods in mupdf.lua. So that a small amount of mcode
memory (64KB) allocated when koreader is launched in the android.lua
is enough for the program and it won't need to jit other parts of lua
code and thus won't allocate mcode memory any more which by our
observation will be harder and harder as we run koreader.