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
Add env value for specifying alternative return codes
Update run() and local() to support alternative return codes
Create nested prefix test for #736

This test initializes two prefix context managers before using them.
Since the context is not entered immediately after initialization, the
test will fail if the bug is present.
Refactor _setenv to accept a dict

This is in preparation for allowing it to accept a callable for lazy
evaluation.
Allow callable _setenv argument
Defer access of command_prefixes until __enter__

Fixes #736
keep reference to undecorated functions, for docs
fix link to python string.Template docs
Truncate the mega-list of versions in manual doc builds
Work around sphinx brokenness re: autofunction duplicating vs overriding
Merge branch '1.4'
Merge pull request #665 from rodriguealcazar/master

#629: returning a result from upload_template
Docs & changelog re #629, re #665
Change env success_return_codes to ok_ret_codes