Allow IPv6 host addresses

Syntax examples:
  fe80::1111:2222:3333:4444
  user@fe80::1
  user@[::1]:2222 (square brackets are necessary for non-standard ssh port number)
Add IPv6 support for rsync project synchronization
Add some IPv6 related comments
Add test coverage for IPv6 related functions
fix typo
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)
Add new util for patching raw_input with given Fake
Add new test re #690 to ensure correct behavior during host prompting
Use new util in place of __builtin__ patch
Merge branch '1.3' into 1.4

Conflicts:
	tests/test_network.py
Merge branch '1.4'
Fix #693
Merge branch '1.4'
Allow StringIO/BytesIO objects to have a friendly name attribute in get/put output
Tests for logging output of StringIO objects with a name attribute
porting to py3k: fixed print statements
better py3k porting mantaining 2.5 compatibility
fixed 2.5 print backwards compatibility
Modify the require function to check values of keys in env dict

Currently, the require function only checks for the existence of the key
in the env dictionary, not the value. This change modifies that behavior
by checking the value of non-primitive types. That is, if a key exists
but its value is an empty list, dict, set, or tuple the require function
will throw an exception for that key. All other types are handled as
they were previously.