Rafactored a reasonably large portion of the Remote Desktop. Added a few
interfaces, cleaned up some code, and multiple improvements to the
design.
Also fully implemented the new custom PictureBox control. Performance
gain is more noticable.
Clone the Bitmap on the "UpdateImage" method. It should be the
responsibility of "UpdateImage" anyways because it is the method
responsible for specifying how to manage the Bitmap provided. This also
serves an issue where the call to clone the Bitmap and cast it to a
Bitmap object was no longer in a try-catch block as it used to be (and
should be once more).
Fixed an issue where Remote Desktop would not work (threw infinite
InvalidOperationExceptions) because cbMonitors.SelectedIndex was trying
to be accessed on a different thread.
Moved code that gets the SelectedIndex inside the MethodInvoker.