Some additional measurement-tool fixes.

- Fixed the updateShapeSize() method in the MeasureTool class by
  adding an addtional initialisation clause for the square-shaped case.
  If not initialized (i.e. shapeRectangle == null) we take the max of
  the width and height as the new dimensions. This will ensure that
  initial placement of the square snaps to the cursor's position which
  is more natural than snapping to the min of the width and height.
- Made another fix to the updateShapeSize() method pertaining to the
  circular-shaped case. Also introduced an initialisation clause (i.e.
  shapeRectangle == null) that correctly calculates the width and height
  of the circle. As is the case above with the square, we also snap to
  the cursor by taking the max of the width and height. Also, by
  calculating the height by making use of Math.sin() we ensure that the
  initial width and height of the ellipsoidal-shaped case is correct
  (instead of hard-coding it as width = 0.6 * height or vice versa).