Implement blueprint support-bitwise-ops-in-lua

https://blueprints.launchpad.net/tarantool/+spec/support-bitwise-ops-in-lua

Make bitop available in the interpreter.
Extend the docs. Document tonumber64.
Bug fixing, improvements to make queueing work.

Make box.lua just one of the many files which can be
compiled into the server.

Fix lbox_tonumber64 to not truncate large Lua numbers (which
don't fit into 32 bit range).

Make box.fiber.id() work according to the docs.
Fix a compile failure in the master tree (missing queue.lua.c).
A fix and a test case for Bug#1060967 box.pack('p', lua_number) truncates 64 bit integers

Check if the number is in the 32-bit range before converting
it to a 32-bit int, in box.pack('p'). If the number is large,
convert it to a 64-bit integer.
Minor cleanup of non-working code (perhaps a bad idea).
Add support for 16-bit numbers in box.pack and box.unpack

- Add support for [sS] format in box.pack (16-bit integers)
- Add support for [b] ans [s] format in box.unpack (8 and 16-bit integers)
- Fix docs
Fix a typo in the manual.
Merge branch 'box-pack-16-bit'

Conflicts:
	test/box/lua.result
Fix a test case I broke while cleaning up CDATA support.
Prepare for removal of crlf in output: make test output crlf independent.
Update AUTHORS
Refactoring: make sure row applier is called with context.

When we recover either from a remote source or
from local log file/snapshot, a module "apply row" function
is invoked. Up until now this function
was invoked with a single argument - the row to apply,
and there were no context which would be passed around.

This worked fine as long as fibers were "all inclusive" --
i.e. contained all possible context which a function may need.

Now, when networking API and IO handles are split from
struct fiber, they need to be passed around explicitly,
in particular, into row apply function.

Prepeare the code base for this.
Extract netwrok I/O from fiber I/O and make it exception-safe. Step 1.

Introduce two levels of new API: sio.h (the basic
socket IO) and evio.h (libev integrated socket IO).

Start changing the code base to use the new API.
Begin with replication.m.
Make it possible to pass variadic arguments to fiber_call.

Change a single void * pointer passed to fiber_create
to a variadic list passed to every fiber_call().
Extract cooperative IO from fiber.m.

Make all subsystems (administrative console,
replication, memcached, binary protocol) use exception-based
socket API (sio.m).

Remove all fiber members related to socket I/O.
Remove fiber->peer and fiber->cookie.
The idea of the cookie is to preserve in the WAL
the originator of the request. This information is, however,
lost when saving a snapshot. To my knowledge there is no use
of this functionality, apart from pretty-printing
the WAL.

Peer is like cookie, but is textual and is used
for logging. However, now, as long as network errors
occur outside fiber context, most of the usefulness
is lost. The only remaining case is when someone is
trying to execute a write request on a read-only port.

For all other cases, sio.m already supplies SocketError
with peer name, and this is where it's most useful.
Dont' malloc() struct coio.

Dont' malloc() struct coio.
It's tiny and safe (unless ev_io_start() is done) to pass
around by value.
Fix bug, when index contains same field more than once
Style fix.
Merge branch 'box-pack-16-bit'
A fix and a test case for Bug#1061147 "tonumber64 is not transitive"

https://bugs.launchpad.net/tarantool/+bug/1061147

Patch contributed by Mons Anderson

When accessing Lua stack via a numeric index, first calculate
absolute value of the index.