Merge remote branch 'origin/feature/6957_SaveZODS'
First cut at GUI elements for the remote algorithsm work

Cherry-picked from original commit:
9d78735367a204d1058e8963f5c2ddc9ace76a0e

refs #4884

Conflicts:
	Code/Mantid/MantidPlot/CMakeLists.txt
Further work on the remote algorithms project.

Still not anywhere near complete, but some more functionality has been
added:  cluster info is save to / restored from the properties file and
the code to fetch the specified configuration file from a URL works.

Refs #4884
Moving files related to remote job submisison  to their own directory.

Refs #4884
Moving files related to remote job submisison to their own directory.

Refs #4884

Cherry-picked from original commit:
d4663554859ff1d4d45b968e3bc88e72c8403d77

Conflicts:
	Code/Mantid/MantidPlot/CMakeLists.txt
Now have enough done to actually submit a remote job to Chadwick

refs #4884
Minor comment change

refs #4884
Small tweaks to the remote job submission code.

Setting the job name (instead of leaving it as the default of STDIN) and
picking up the user id from the RemoteJobManager class.  Still need to
figure out how to handle the password though!!
refs #4884
Fixed a signed/unsigned comparison warning

refs #4884
Added job status display

Added code to display the status of previously submiitted remote jobs.
Also added code to ask for a password the first time the user needs to
send anything to Moab Web Services.  (The password is held in memory
after that.)

refs #4884

Cherry-picked from original commit:
419ddcfd443ac976e10a12fb0611e4169d7d54fe

Conflicts:
	Code/Mantid/MantidPlot/CMakeLists.txt
Minor cleanups in preparation for a code review

Declared default constructor for RemoteJob private (and left
unimplemented), removed unnecessary #include's from MantidRemoteAlg.h
and commented out a currently unused paramter in
RemoteAlgorithmDockWidget::xmlParseServerAttributes()

Refs #4884
Changed all instances of "Remote Algorithm" to "Remote Task"

Refs #4884
Replaced a few more instances of 'algorithm' with 'task'

Refs #4884
Filter the job status dialog

Added a slider widget to the job status dialog so that users can filter
out jobs older than a specified number of days.  NOTE: This is just the
GUI bits; the actual filtering code isn't ready yet.

Refs #4884
Adding a JSON parser for Moab Web Services output

Refs #4884
Update CMakeLists to compile the new JSON parser code

Refs #4884
Change Job Status Dialog Box

Changed the job status dialog box to query the MWS server for all the
jobs the user has submitted.  Uses the new JSON parser code to parse
the (rather complicated) output.  Also includes a spinbox to let the
user set the maximum age of jobs to be displayed.

Refs #4884
Changes to the remote job submission code

Added code to automatically pick a name for the remote job's output file
and pass that as a parameter to the job submission URL.  This is needed
to allow the user to download the results after the remote job has run.

Refs #4884
Added ability to download output files from cluster

'Download' buttons in the Job Status dialog will now actually attempt to
download the output file and open it in a new workspace.  Also added
code to verify that there actually is an output file available before
adding the download button.

Refs #4884
Only show jobs submitted from MantidPlot in the job status dialog

Uses the 'variables' entry in the submitted JSON to set an entry called
"SUBMITTING_APP" when the job is submitted.  The jobStatusAll() function
checks for this entry and only includes jobs that have it set in its
result list.

Refs #4884