Bug/dp

Fix #53 and #45. Also added Device detection by physical diagonal.
Can you make all these enum-like constants `readonly`, like `readonly property ...`