Update libcoro to 6.06. Fix a bug with error propagation in Lua.

Fix a bug when Tarantool exceptions were intercepted
by Lua in lua_pcall(), and converted to Lua errors.
Let Tarantool exceptions pass freely through Lua, by using
lua_call() instead of lua_pcall().

In case of any Lua error lua_call() aborts execution of the
entire process. Register lua_atpanic that converts
lua errors to Tarantool exception ER_PROC_LUA.

Unwinding the stack in this manner didn't work properly
with libcoro 6.0, which we were using. Update
libcoro library to version 6.06 to fix this problem.
feature 'master-valgrind':

* process handle routines in test enviroment was updated.
feature 'master-valgrind':

Test envirment:
 - stop server routine was updated;
 - valgring start options was updated.
Valgrind:
 - suppressions was updated.
* cfg leaks fix
* valgrind suppresions update
* valgrind.sup path updated
Merge branch 'master-valgrind' of github.com:mailru/tarantool into master-valgrind

Conflicts:
	test/box/valgrind.sup

valgrind.sup path updated
feature 'master-valgrind':

Test enviroment:
  - start/stop server routine was updated.
Tests:
  - fix double start srvers.
Lua: prepare to intercept box.process results into Lua.

Remove dead code from txn_cleanup(), which
would check that txn_cleanup() is not called twice:
this code is from the time when we used

Rename txn_abort() to txn_rollback().
Rename txn_alloc() to txn_begin().

Introduce box_out interface, used to
send box results to the client. Lua uses
this interface to intercept returned tuples
and push as return values to Lua stack.

Make iov_add/iov_dup inline, as they used
to be. They are now mostly used from within
callbacks.

Make txn_commit()/txn_rollback() non-static
as they are now used in memcached.m.

Introduce memcached_get(): implementation
of Memcached GET statement. Wrap memcached_get()
in proper txn_begin()/txn_commit()/txn_rollback(),
and handle failure of memcached_get() by
rolling back the transaction.
Split BOX_QUIET to two flags: BOX_GC_TXN and
BOX_QUIET.
BOX_QUIET had a side-effect that txn_cleanup()
was done immediately, rather than by fiber_gc().
This had the side effect that txn_commit() could
not be used in memcached_get(), because in
memcached_get() we need both BOX_QUIET and txn_cleanup()
called from fiber_gc().

Now that we have box_out interface, eliminate
BOX_QUIET flag completely, and use box_out_quiet
set of callbacks instead.
feature 'master-valgrind':

Test enviroment:
  - checking empty tests list was added =;
  - valgrind suppressions routine was updated.
feature 'master-valgrind':

Test enviroment:
  - old valgrind.sup file was deleted (not needed any more).
  - unused options in suite.ini files was removed.
Lua: improve the way Lua procedures return results.

Instead of using "print" and fiber->iov
to return results to the client, change the Lua procedures
implementation to simply send to the client all return values
of a procedure. A procedure, in turn, can return tuples, integers
(and, in future, strings, Lua tables or whatever).

This allows nicely to call one procedure from another, and use its
results in Lua, and call the very same procedure from the binary
protocol, and still be able to process its results on the client.
feature 'master-valgrind':

Test environment:
 - test-run.py script was reformated to PEP8.
Lua: merge the admin. console and module interpreters

This allows to immediately call from modules stored
procedures defined in the administrative console.
feature 'master-valgrind':

Core:
  - salloc_destroy was removed from tarantool_free routine
Test environment:
  - new option 'valgrind_disabled' was added to suite.ini;
  - box/show test was renamed to box/admin test;
  - box/admin test was splited to admin adn admin_coredump tests.
Merge branch 'master' into master-valgrind

Conflicts:
	core/CMakeLists.txt
	core/fiber.m
	third_party/valgrind/valgrind.h
* namespace_free rewrited
feature 'master-valgrind':

Core:
  - fix telling libev about forks.
Merge branch 'master-valgrind' of github.com:mailru/tarantool into master-valgrind
Lua: mature the implementation CALL command in the binary protocol.

Fix a bug when Lua transaction was rolled back
twice when Lua procedure was invoked from CALL.

Change the way arguments to and from CALL
statement in the binary protocol are passed:
we used to pass everything from the wire as a single
binary blob. Now every field of the received
tuple is passed in as a separate string argument.

Everything passed back from Lua is converted to a tuple. This
makes CALL response similar to one of SELECT.

Improve box.pack() to convert its argument to integer when
necessary. Add an argument count check to box.pack().
Additionally, now box.pack() can be used to pack
operations of 'UPDATE'.

Use tarantool_lua_tostring() in iov_add_ret():
this function is now used to convert return values to
the binary protocol in box_lua.m. This is necessary
if we try to send boolean or nil over the
binary wire, since Lua C API lua_tostring()
does not convert them.

Add box.lua - a system Lua script
compiled into Tarantool and containing a bunch
of Lua code preloaded at startup.

Populate box.lua with implementation
of basic Lua functions:
box.select(), box.update(), box.replace(),
box.insert() (currently an alias for box.replace()),
box.delete(). They are all wrappers around box.process().

Move box_lua_init() to the beginning of mod_init(),
since Lua in future can be used in recover().

Fix a wrong assumption about the contents
of Lua stack in iov_add_multret().

Update sql.g Python SQL grammar to allow
an empty argumeent list for procedure in CALL
statement.

Add initial documentation on Lua procedures.

Add more Lua tests.

Unrelated: rename INSERT to REPLACE, and UPDATE_FIELDS to
UPDATE.
Remove SELECT_LIMIT, which is not used any more.
Fix compilation and test failures in -DCMAKE_BUILD_TYPE=RelWithDebugInfo