Refs #9371 View and Presenter basics and Test

The Presenter has been created which assignes a model to a view

The view base calss has been written. This is abstract as the actual view we'll be using will be Qt based

A test for the presenter has been written
Refs #9371 Presenter now subclassed from interface

The presenter is now a child of the new IReflPresenter, as is the new ReflNullMainViewPresenter
Refs #9371 Restructuring test slightly

A test needed moving inot a new class

Discovered i was missing system.h from includes as i needed it for the DLLExport
Refs #9371 Updated Class Docs

The doxygen block in the header has been updated.
Refs #9371 View and model are now presenter members

the presenter now keeps the view and model as member variables. Load() is used to put the model into the view.
Refs #9371 Interface now loads tables into itself

The interface will now load and display any tableworkspaces in reflectometry format already in the ADS.
Refs #9371 Unit tests updated

The unit tests have been updated wiht the following:

The null object now tests notify() rather than load() as notify is all the view should do and load() is now private.

The concrete class now tests three fail cases where the table isn't in a valid format.
Refs #9371 Split usage of the presenter into a loaded and blank.

ReflMainViewPresenter has been made abstract and sublassed to ReflBlankMainViewPresenter (which creates a blank workspace with one row on the fly) and ReflLoadedMainViewPresenter (which does exactly what ReflMainViewPresenter used to do)

The test for ReflMainViewPresenter, has been moved to ReflLoadedMainViewPresenter and has had the fixes owen mentioned applied.

Rejigged the layout on the UI, in leiu of a menubar, there's a temperary row of buttons that will act the same until i can move the functionaity elsewhere.
Refs #9371 Editing and saving tables

Users can now edit and save changes to tables.
Refs #9371 Removed unused test

The test for the base ReflMainViewPresenter class was made redundant when it was subclassed.
Refs #9371 Added buttons, flags and getters

Added "Add Row" and "Delete Row" buttons to interface

Added row headers to view as the code that would implement them was missing from the model

"Add Row", "Delete Row" and process have had appropriate flags, getters and connections made in the view
Refs #9371 Add row functionality

Add Row will now append a row to the model. The new row will always be at the end for now.
Refs #9371 Add row, delete row and process

The add row functionality has been fleshed out to allow adding in speciifc places

The delete row functionality has been added and removes only when an entire row is selected

Processing is now possible, however it does contain a few hard-coded hacks to set values at present while owen fixes a fault in CreateTransmissionWorkspaceAuto

Methods to show differeing levels of message box have been added inluding Yes/No question, Critical, Warning and Information

The view can now return a vector<size_t> of selected columns.

Doxygen info has also been added
Refs #9317 Add and delete row tests

Add row and delete row now have unit tests

Cleaned up a load of gmock warnings by creating a new class specifically for the constructor.
Refs #9371 Working on processing tests

Processing testing had been started, although this ticekt has now become blocked by the problem that the two Auto algorithms i use can't be accessed from a unit test, so that'll need fixed before i can continue.
Refs #9371 Fix compilation
Refs #9371 Fix initialiser order warning
Refs #9371 Fix private slots indentation
Refs #9371 Re-layout Reflectometry UI

The existing design was historical. This commit dispenses with some
obsolete items and reorganises the existing items. The new layout is
still a little bit rough, so there's room for improvement. But it's a
step in the right direction.
Refs #9371 Fix a few typos