Replace ring type in WritableStream to bytearray()

Old type array make a lot of memory allocations while put large binary
object into it - very long (99Mb ~ 12 sec), now about 2 sec with
bytearray.
Merge branch 'master' of github.com:cocaine/cocaine-framework-python
Several functional tests added for command-line applications

 - main test case prepares local working directory and fill it with necessary files (such as config.json, profile, application, runlist etc). Then test executor tries to run every possible command with various options and compare its result with expected. Return codes are also compared. Before running these tests you have to config some global variables (in tests/tools.py) such as python path, cocaine-runtime path etc.
Move Future to cocaine.futures
Implement class Locator() with cache.

This is a part of work for decoupling Logger from Service code base,
because now Service cann't use logger for debugging itself.
Decouple Logger and Service code

It's possibly now use logger in services methods, for example in
futures.
Drop unusable app_name from class Service.

It's useless for all services except Logger, so drop it from basic
implementation.
Some cocaine-tools tests has been added and/or fixed

 - removed deprecated tests
 - fixed command line arguments that equals with tags leading to undefined results
Chain futures idiom introduced

 - `cocaine.futures.chain` module introduced. It represents collection of chaining future classes and decorators to simplify work with them
 - AddApplicationToRunlistAction class implemented as an alternative to RunlistAddAppAction. It uses new future-chaining idiom and its code looks more cleaner and simpler
 - class RunlistAddAppAction is now deprecated. Use AddApplicationToRunlistAction instead
 - now console application usage of cocaine tools has a global timeout of 1 second. It is planned to make it as a program parameter
 - some examples of usage new chain futures idiom can be found in `examples/future_madness.py` file
Send first heartbeat immediately after handshake.

In past first heartbeat from cocaine-runtime was responce on handshake
message. It restarts disown and heartbeat timers.
Generally speaking server starts sending messages only after first heartbeat,
but initialization in Worker class ends at the same time with sending handshake - it means,
that handshake and first heartbeat have same purposes, so will be send
together.
Add some info to the changelog
Handle errno.EISCONN on MacOS in non-blocking socket connection

On Mac OS it raises EISCONN, when connection to the local socket successfully
established - handle it now properly.
Now cocaine-tool has global option '--no-colored' to disable colored output. Also colored output is disabled automatically if stdin is not a tty
Option '--no-colored' has been inverted to 'color' to match all the other command-line tools in Linux.
Disable cache in locator by default.

Cache is useless, when service is used to invoke applications, because
all messages will be sent to only one node.
Packs body in http decorator with msgpack

As applications are the same as services - so all answers must be packed