Version control in rose-stem source working copies

When running a working copy through rose-stem (which is normal as you can't run a suite from a branch) there is a requirement to know what the differences between the working copy and the latest commit to the branch is (issue #382).

This introduces the ability to write files containing svn status, diff, and info of any working copies (not branches, it's not necessary as the information is already available) in the log directory. Each --source argument (including the implied --source=. if none is supplied) will produce a .version file if it's a working copy, named after the project with a number indicating the argument number. 

For example, running:

rose-stem --task=hpc_n48_omp_ios --source=/data/local/fruw/um_trunk/trunk --source=/data/local/fruw/jules_tr 

produces the files um-0.version and jules-1.version in the log/ directory.

Because the log/ directory hasn't been created when stem.py is executed, I've put the logic in run.py with an appropriate if condition so if the run wasn't run through rose-stem (the opts.source and opts.project attributes don't exist) it won't try and write any files.

Passing to @matthewrmshin for review.