add better return code handling

when there is a signal in untrusted code, the return code from the session is invalid
in that case we need to somehow pass zerovm return code outside
the common way of passing several return codes in one byte is by doing bitwise `or` into actual byte
this is what was implemented as a default behaviour
add support for `/dev/self`

ZRT and other libraries can use the nexe image binary file for some of their features
for example, to know the addresses of functions or to load some functions dynamically
we map the binary to a special device `/dev/self`, can be considered a ZeroVM ABI
the patch adds support for `/dev/self` channel into zvsh-generated manifests
Merge pull request #40 from pkit/rc

add better return code handling
Merge pull request #41 from pkit/dev_self

add support for `/dev/self`
zvshlib: add __version__ var to package
setup: Use __version__ var from zvshlib package
doc: bootstrap sphinx documentation
tox: add doc build to default configuration
Merge pull request #42 from pkit/refactor

Refactor zvsh
Merge pull request #43 from larsbutler/bootstrap-sphinx-docs

Bootstrap sphinx docs
move more things to zvshlib

preparation for tests, need to move more things to module