Refs #10347 Use declarative bindings in options dialog

Instead of manually having to load/save options to/from widgets in
QtReflOptionsDialog, we now load/save options using a map binding
options to widgets. It may seem overkill for just one option, but when
we have fifteen to twenty it'll greatly simplify our life.

It could be expanded in future to build the bindings from widget
properties in the UI file, so new options need not even touch
QtReflOptionsDialog's code.
Refs #10347 Add rounding options

Users may now individually specify what level of rounding is applied to
the angle, qmin, qmax, and resolution columns.
Refs #10347 Add option for warning when discarding changes
Refs #10347 Automatically bind options to widgets

Use the `reflOptionName` property on a widget to specify the option its
value should control.
Refs #10347 Remove "Apply" button from options dialog

It has no advantage over the "Ok" button. The dialog forces itself to
remain in the foreground, so nothing can happen between the user hitting
"Apply" and closing the dialog. We may as well be tidy and remove it.
Refs #10347 Correct unit tests

Now that we are not rounding by default, the expected values for unit
testing need to be updated.
Refs #10347 Use TS_ASSERT_DELTA
Merge branch 'master' into feature/10347_refl_interpret_existing_actions

Refs #10347

Conflicts:
	Code/Mantid/MantidQt/CustomInterfaces/src/ReflMainViewPresenter.cpp
	Code/Mantid/MantidQt/CustomInterfaces/test/ReflMainViewPresenterTest.h
Merge remote-tracking branch 'origin/feature/10347_refl_interpret_existing_actions'