Connect slots to configLoaded.

All the necessary hardware calls are done in the thread.  This avoids
freezing the GUI while the configuration is being loaded.

Starting the polling timer is also connected to configLoaded.

The widgetmappers are also now connected to configLoaded.  This fixes a
bug where the coal to mapper.toFirst() would be executed on an empty
model.  The results was that the user had to select a row in the table
so that the mappers actually work.
Update docstrings
New class: PollingInstrumentModel

The class inherits InstrumentModel and moves the polling logic outside
of InstrumentModel.
fix typo in _NumericRange

editor.setrange -> setRange
fixup error handling in _ModelData.sample()

Fixes for the cases where the item would be None or an empty string.
Silently return 0.0.
new classes: ColumnRanged{Item,Model}

ColumnRangedModel stores column-wide minimum/maximum values in
UserRoles.

ColumnRangedItem is the item prototype used by the ColumnRangedModel and
provide accessors for the minimum/maximum values.
use ColumnRangedModel in SetpointItem

This fixes setting minimum and maximum values in the delegates from the
program pane.
fix single instrument view
switch watlow to single instrument view
default PID to proportional on process value
Set initial state in DioController.createEditor