Added some unit test (incomplete).  Refs #7653.
Checkpointing work.  Refs #7653.
Merge branch 'master' into feature/7653_add_fp_peak9
Added some unit tests.  Refs #7653.
Tried to fix windows build.  Refs #7653.
Start moving to new web API

First changes to support the new web api:
- RemoteJobManager hierachy has been collapsed into a single (and much
  simpler) class that now lives in MantidKernel
- RemoteJobManagerFactory is gone (no longer needed)
- Added a new 'Authenticate' algorithm
- Disabled the other remote algorithms because they haven't been updated
  yet.

Refs #7769
Refs #7783 use FindPeakBackground in FindPeaks
Started the implementation of Rwp cost function.  Refs #7476.
Checkpointing work.  Refs #7653.
Modified the start and stop transaction algorithms

Updated StartRemoteTransaction and StopRemoteTransaction to use the new
web API.  Also updated the cookie handling code in RemoteJobManager

Refs #7769
Re #7785. A new exception type for use by live listeners.

This will allow listeners to pass control back to LoadLiveData rather
than blocking if not ready to return a workspace. This will allow things
like algorithm cancellation. Unlike other exceptions it will not stop
the algorithm.
Refs #7783 subtract i_min from peak boundaries
Checkpointing work. Refs #7653.
Rearrange sans function to allow changing the tolerance Seek centre

Inside ISISCommandInterface.py, change the FindBeamCentre in order to allow
providing a new value for tolerance. It now, uses the previous values
as the default input.

re #7824
Modified to scale to average when no scale specified.

Also added information about the calibration to the log files.

Refs #7839
Changes to the HTTP POST function

Couple of minor changes to make POST requests work properly:
1) Need a blank line before the start of the data in multi-part mime
data
2) Separate file data from other data (by using a second PostDataMap
reference) because it needs to be handled a little differently in the
mime encoding

Refs #7769
Convert the upload and download algorithms to the new web API

Refs #7769
Re #7785. The algorithm side of waiting for a run to start.

LoadLiveData catches the NotYet exception, logs it and waits 10 seconds
before calling extractData() again. While waiting it listens for user
cancellation of the algorithm.
Listeners can throw this exception to 'pause' things - any other
exception type will stop the algorithm.
LoadLiveData had to be made a 'proper' child of StartLiveData for the
cancellation signal to get through.
Re #7785. Hooks for testing the use of the NotYet exception.

Add a property to have the FakeEventDataListener throw the NotYet
exception a given number of times. This allows testing of the
behaviour on the algorithm side of this work.
Re #7785. SNS listener throws a NotYet exception when appropriate.

In particular, it throws it if data was requested from the start of the
run but the instrument is not in a run. This allows the user to cancel
the algorithm or wait until a run starts, at which point the data will
flow.
It will also throw if the workspace has not been initialized, though
not immediately as experience shows that it can sometimes (SEQUOIA for
example) take some time for the instrument to be loaded.