Accept a Bitmap as const ref in convertBitmap

Neither does the function take shared ownership nor does it change the
reference. Therefore, const ref is fine (see GotW 91 solution 3 (b),
http://herbsutter.com/2013/06/05/gotw-91-solution-smart-pointer-parameters/).
Accept a Bitmap as const ref in setIcon

Neither does the function take shared ownership nor does it change the
reference. Therefore, const ref is fine (see GotW 91 solution 3 (b),
http://herbsutter.com/2013/06/05/gotw-91-solution-smart-pointer-parameters/).
Let UI factories return a std::unique_ptr

This makes clear that pointer ownership is transfered to the caller.
See see GotW 90 solution 2 at
http://herbsutter.com/2013/05/30/gotw-90-solution-factories/

Futhermore, store references to a cursor as std::shared_ptr.