app: clean up angle calculations in GimpCicrle and GimpDial
app: add private function gimp_dial_set_target()

which avoids invalidating the widget if the target didn't change.
app: factor gimp_prop_widget_new() out of gimp_prop_table_new()

The new function generically returns a widget for one property and is
used in gimp_prop_table_new().