Frontlight bugfixes and refactoring

New pull request to replace the old PR #209.
I have made a little further refactoring since yesterday:
- Moved bounds checking to a new object `BaseFrontLight`
- Defined `min` and `max` attributes
- Used these attributes to build hint string in `ReaderFrontLight` dialog
- Changed all `Device.frontlight` in `ReaderFrontLight` to `Device:getFrontlight()`, just for consistency

@houqp @giorgio130 Please review