Merge pull request #1 from cylc/master

Update my copy of the repo
Merge branch 'master' of git://github.com/cylc/cylc
Merge remote branch 'origin'
Send environment variables as arguments

When using ssh remote messaging with Cylc it sends information about
what suite a message belongs to with environement variables. These
variables have been sent using a bash wrapper around 'cylc message' and
similar.

For security reasons some HPC sites may wish to restrict what commands
may be run by unattended ssh connections. This patch is the first step
in allowing the bash wrapper to be removed if desired, so that remote
commands may be limited to 'started', 'finished' or 'error'.

Environment variables may now be passed to cylc like

    cylc --env=NAME=value

Arguments matching this pattern are parsed by the Cylc driver, turned
into environment variables and removed from the argument list before
starting a subprogram.

Remote messages now use this pattern to send environment variables,
rather than adding them to the wrapper script.

Also included is a refactoring of the remote command invocation, to
ensure that the verbose mode output matches the command that is called.
Use a bash login shell for the remote command

Adding the --login flag to bash automatically sources the profile files
for the remote machine, avoiding the need for checking for them in the
ssh command.

Whether or not to use a login shell is now enabled by a boolean within
execute(), which will be changed to a config file setting.
Add login shell option for remote tasks

Add a new suite.rc option:

    [runtime]->[[_NAME_]]->[[[remote]]]->use login shell

Enabling this option results in remote commands being run in a login
shell, so that a user's ~/.profile settings are sourced. It defaults to
True.

Disabling this setting may be useful for facilities that wish to limit
the creation of unattended login shells for security reasons.

With the option enabled remote commands look like

    ssh user@host "bash --login cylc function"

with it disabled they look like

    ssh user@host "cylc function"

Also provided is the command line options --login and --no-login, which
enable & disable this functionality respectively from the command line.
Expand the 'use login shell' documentation

Adds a description of what profile files are sourced by the shell for
each mode.
Run the cylc server in daemon mode; closes #84.

Daemonizes the cylc server process just after connecting to the suite
Pyro port, so that we can check the suite is not already running before
daemonizing and redirecting output to log files.  Some useful info is
printed to stdout before daemonizing. The --debug option causes cylc to
run in non-daemon mode.
Removed obselete command option from a test suite.
Added command help on daemon mode.
Redirect std file descriptors properly.
Merge branch 'master' into scott-login

Conflicts:
	conf/suiterc/runtime.spec
	lib/cylc/task_types/task.py
Updated documentation for 'use login shell'
Print (c) and lic info a bit later, to avoid for --help.
Merge pull request #2 from hjoliver/login

Update branch with changes from master
Merge pull request #252 from hjoliver/84-daemon-mode

Run the cylc server in daemon mode; closes #84.
Merge pull request #210 from ScottWales/login

Add option to disable login shell in ssh commands