Altered:
- Structure of AMScanDataView. Now contains a list of generic
QAbstractItemViews, rather than the system before of specifying an
AMAbstractScanDataChildView interface.

- Started making sure AMScanDataView shares the same public face as
AMDataView, so I can hock one in over the other
Added:
- stubs to AMScanDataView in order that it can have the same interface
as AMDataView (and AMDataViewWithActionButtons)

Altered:
- AMDatamanAppController and SGMAppController so that they now show an
AMScanDataView instead of an AMDataViewWithActionButtons or a
SGMDataViewWithActionButtons.
Removed:
- AMScanDataChildTableView ~ No use for this now not using abstract
interface for the child views

Altered:
- AMScanDataView ~ Altered the method used to display the search filter
window, added a title of the style of the AMDataView

Also played around with some search icons, then found there was one
already, and removed them ones I'd created.
Added:
- AMLightweightScanInfoFilterProxyModel ~ Needed to allow filtering of
scans by row as a top level filter (on top of all the others)

Altered:
- Removed filtering by experiments from public AMScanDataView interface,
and calls to it in AMDatamanAppController. There doesn't seem to be any
reference to experiments. If this is used somewhere, maybe in other
beamlines, then I'll add it back
- AMLightweightScanInfoCollection ~ Now a QObject encapsulating a QList,
rather than just a subclass of QList. This allows for it to emit signals
when the data in it changes
- AMLightweightScanInfoCollection ~ A whole bunch of changes to cope
with changes to the data (adding/removal/updating of scans, updating of
runs and samples)
- AMLightweightScanInfoModel ~ Now listens for the signals emitted from
the AMLightweightScanInfoCollection it contains, and emits its own
signals to indicate that data is [about to be/has just been] changed.