Refactoring asio/pipe.py module. Handle EALREADY properly.

Combined base implementation of Unix and TCP sockets. Family-specific
differences are moved in a separate classes that implement configuring
socket depending on its type.
Now any long time consuming function can be invoked in separate thread in chain context

 In following example we define class `Example` with `execute` method which returns `ChainFactory` object with two functions in it. After `execute` is invoked, there will be 100 sleeps done in separate thread, so noone would be blocked:
 ```
 class Example(object):
    def execute(self):
        return ChainFactory([self.do100SleepsOneByOne, lambda r: sys.stdout.write('Done!')])

    def do100SleepsOneByOne(self):
        for _ in xrange(100):
            result = yield self.sleep(0.01)

    @chain.threaded
    def sleep(self, t):
        time.sleep(t)
        return 'Arrrgh! You woke me up', t
 ```
Exception rethrow

 - now exceptions thrown in other thread would be rethrown in chain thread
Cocaine tools now have experimental `AppUploadFromRepositoryAction` action to upload application from git repository. Also some fixes done

 - `threading` thread is now daemon - temporary solution to be able to terminate it if some error occurred (e.g. TimeoutError)
Changelog stuff.

Refactored the changelog similiar to Native Framework one.
Merge branch 'master' of github.com:cocaine/cocaine-framework-python
Some additional tiny changes.
Suddenly, `virtualenv` module is not thread-safe. Simple lock added
Merge branch 'master' of github.com:cocaine/cocaine-framework-python
PEP-8 nazi refactoring
Some unit tests (true at last, with mocks and stubs) has been written
Refactoring over `AppUploadFromRepositoryAction` done

 - functional decomposing
 - suppress verbose output. Logging added instead
Module decomposition done

 - now all repository download specific actions located in `repository.py` module
 - now all repository install specific actions located in `installer.py` module
 - logging from `chain.py` has been removed
Send ERROR if there is no handler for giving event.
Examples fixed to match current version
Refactoring over chain and tools

 - now you no longer need to explicitly call `run` method from `ChainFactory`
 - tools.py module cleaned up
Some code cleanup
Chaining manipulation extended. Blocking wait and ready check introduced

 - now you can ask chaining objects for readiness explicitly or implicitly
 - `wait` method allows you to wait some service method (or chaining) for completion during some timeout
 - some documentation added

Example:
Given:
 - service 'Kings' with method 'hailAndKill' that invokes approximately 0.2 seconds

Now you can write:
```
>>> s = Service('Kings')
>>> fut = s.hailAndKill()
>>> fut.wait(0.1)
>>> print(bool(fut), fut.ready())
False, False
>>> fut.wait(0.1)
>>> print(bool(fut), fut.ready())
True, True
>>> fut.get()
'Power!'
```