Extract display-related settings into class BPDisplaySettings and let the user change them

I'm opening this Pull Request for discussion, what do you think?
Is there anything you'd miss?