sophia: implement engine transaction; sophia transaction support

closes #gh-554
sophia-gh-577: make rollback procedure an engine related
sophia-gh-577: forge LSN on commit
sophia-gh-577: pass and use LSN during log recover, fix #gh-555

This patch uses sophia'a two-phase recovery to
integrate with tarantool wal.
sophia-gh-577: make profiler information available in tarantool
Merge branch 'master' into sophia-gh-577
Merge remote-tracking branch 'origin/master' into sophia-gh-577
sophia-gh-577: pass engine options on box.cfg
Merge branch 'master' into sophia-gh-577
sophia-gh-577: refactor txn engine statements
gh-577: review fixes
Merge remote-tracking branch 'origin/master' into sophia-gh-577
Minor edits of the comments.
Allow GUEST user to pass authentication request without a password.

If no password is set for GUEST user, allow a client
to authenticate to GUEST.

For all other users, no password means that it's only possible to become
such user with session.su() or inside a setuid function.

The exception for GUEST user is useful for connection
pooling, where we would like to "reset" a connection to its
default, non-authenticated state, when returning it to the pool.
Stricten the AUTH package format for GUEST user.

If no password is set for GUEST user, the authentication
request must not contain auth data, only user name.
A few renames.
A few style fixes in an unused fifo implementation.
sophia-gh-577: reduce number of engine methods
sophia-gh-577: do not emit raise on rollback
Merge branch 'master' of github.com:mailru/tarantool into sophia-gh-577