Replace CGDisplayIOServicePort with a workaround implementation

This could be cleaned up and refined a bit by comparing more display
attributes when available, but it gets the job done.