Added missing private keywords to ColorGroup and Jewel headers
Mouse coordinates are now used to prompt hover-over socket image
Added some protection against selected sockets being NULL
Added auto-clearing of selection if selected sockets are not adjacent
Fixed a crash that occurred when mouse coordinates were logged as on the grid boundary. withinBound function included perimeter coordinates as 'within the grid', but these could not be converted into rows and columns, so perimeter is now discounted.
Added structure comments to ColorGroup class
Tidied main function
Const correctness across Grid, Socket, Jewel and ColorGroup
Re-arranged function order
Fixed comments
Socket class jewel pointer cleanup improved
Removed some unused functions