[WPF] Improve GetScaleFactor and return device-independent pixels from GetMouseLocation

This enables us to use the value of Desktop.MouseLocation to accurately set the
ScreenBounds of a window on WPF.