Make tilde expansion work on Windows

* use Home() to return users home on Windows as well
* only match strings starting with tilde
* fix tests on Windows
The test name suggested that we want to know if we are running on ubuntu or not. That is valid even if we are running on windows. I skip patching lsb_release on windows actually, so the error we get is "The system cannot find the file specified" (or something similar). So utils.IsUbuntu() will return correctly in the test if we are running on windows. This mirrors the behavior that would happen when running this code on windows.