Initially this class was named to provide the possibility of supporting other APIs, however this abstraction has been done with a base class instead.
Large-scale code cleanup. Also adds a license to the top of all files that were missing it.
Implements an extra widget to display images on a separate monitor. Both viewers have separate display color controls since different monitors may conform to different standards/transforms.