Fixes #249 - Adds remote program timeout.

Adds env.command_timeout which sets the timeout value for remotely
running commands.
upload_template returns the return value from put (see #629)
Tasks to be executed

Load state.env['tasks'] from arguments
Tasks to be executed : Initialize env.tasks

Initialize 'env.tasks' to empty list.
Tasks to be executed : Doc for env.tasks
Tasks to be executed : Changelog
Small refactor in io.py

- Optimize read when there is no capture made
Added interactive flag to run

- Setting interactive to False propagate the flag down to the io and ensure reads are fast
- This use a codepath that was never used before in the read loop and in which no prefix is displayed
Add parameter `shell` to `local` command to allow alternate shells
Update contribution docs
Merge branch '1.4'
Add pull-request note
Merge branch '1.4'
Add changelog entry re #725
Merge pull request #725 from mkhattab/master

Allow override of shell in `local` command
Local was missing its autodoc :(
Language tweak
Tried making local(shell) docstring clearer/more explicit
Merge remote-tracking branch 'akaihola/master'

Conflicts:
	docs/api/core/operations.rst
	docs/changelog.rst
Add note about feature branches, improve note re: release vs master