Fix issue where calibration values for rotated screen were wrong

I think this commit fixes the issue reported by Tokoyami.  Calibration
values were really wrong.  The issue seemed to be caused by the commits
bfeaf2eaa (which is a broken commit) and 07978b90b8.  git-bisect told me
this.

Also removed duplication of calibration code "finish()" between evdev.cpp
and calibrator.cpp.  Added "compensateForDevice()" virtual function to
handle adjustments needed to compensate for the device.
Rewrite xf86ScaleAxis in terms of scaleAxis

Also, explicitly use double types in calibration calculations.  Due to the
use of fp constants without a suffix, double was always the type within the
scaling arithmetic anyway.