Issue #148: zoom behaviour wrt mouse position:

- dead-center zooming wasn't correctly using the center position
  of the current view. In addition, we first need to recalculate
  the new dimensions before scrolling to the new/old zoom center.
Issue #148: try to solve the zooming problems:

- there are numerous small problems related to zooming that needed
  to be fixed, the width calculation was wrong, the center point
  was not always correctly determined and updating the components
  width and height are not correct;
- the width and heigth are still not always calculated correctly,
  but the dead-center zooming appears to work in all circumstances
  now.
Issue #148: further work on the zooming problems.