Add Linux support

These commits add generic Linux support. Thanks Òscar for the initial work!

I have tested this on Xubuntu 13.04 and palm mode is functional (though scrolling needs some refining). Finger mode does not work for me, but that is because `controller.calibrated_screens.empty` is always `True` (this might be a problem with the Linux SDK, or just my unfamiliarity with it).