Remove inappropriate os.path.expandpath calls

This was prompted by 5c63955 which added an os.path.expandpath call to
the argument to --zvm-image.

I don't believe that we need to expand '~' and '~foo' in the command
line arguments to our scripts. That is the job of the shell and
normally works just fine with no effort on our part:

  % python -c 'import sys; print sys.argv' --some-arg ~/foo.txt
  ['-c', '--some-arg', '/home/mg/foo.txt']

The only problem is if users specify paths without a space:

  % python -c 'import sys; print sys.argv' --some-arg ~/foo.txt
  ['-c', '--some-arg=~/foo.txt']

If one insists on using no space, the correct way is to use an
environment variable:

  % python -c 'import sys; print sys.argv' --some-arg=$HOME/foo.txt
  ['-c', '--some-arg', '/home/mg/foo.txt']

This is consistent with how other tools such as sed and git works:

  % echo 's/foo/bar/' > ~/test.sed
  % echo hello foo | sed --file=~/test.sed
  sed: couldn't open file ~/test.sed: No such file or directory

  % echo 'commit msg' > ~/msg.txt
  % git commit --file=~/msg.txt
  fatal: could not read log file '~/msg.txt': No such file or directory

Paths read from configuration files (where there is no shell involved)
can be run through os.path.expanduser.
Avoid unnecessary os.path.abspath call for zvsh.cfg

Since we don't change directory at runtime, there is no need to give
absolute paths to ConfigParser.
zvsh: move os.path.abspath calls to where they're needed

When an application doesn't change it's current working directory, I
prefer to delay calls to os.path.abspath until they're really needed.
The advantage of this is that you get cleaner error messages, e.g.,
"cannot load 'foo'" instead of "cannot load '/home/you/foo'".
Merge pull request #18 from mgeisler/remove-expanduser-abspath

Remove some expanduser and abspath calls
HACKING: add hacking guidelines with link to C4
Merge pull request #19 from larsbutler/hacking

HACKING: add hacking guidelines with link to C4
debian: pythonify debian pkg artifacts

This adds the basic boiler plate to control and rules for contructing a
python package.
debian/control: corrected 'Priority'

Changed 'extra' to 'optional'.

'optional' packages include various applications that a user may want to
use, whereas 'extra' packages are defined as those which "conflict with
others with higher priorities". See
https://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics#s-priority.
debian/control: updated maintainer
debian/control: restored strict python version req

For now, require python < 2.8 (which means not python 3.x).
revert to old run path, fixes #21

new run_zerovm() function should be fixed to allow for different execution paths
reverted to old run path for now
I suppose functional tests are needed before we can continue with the new path
Merge pull request #20 from larsbutler/pythonify-deb-pkg

Pythonify debian package
zvsh: escape nvram values more consistently

I dug into the ZRT config parser code and believe this should be a
more correct and complete way to escape the values we put into the
nvram files.

Before, a command line argument like '"quoted"' would have been put
into the nvram file as

  args = "quoted"

and this is wrong: the outer quotes are removed by ZRT when is parses
the nvram file. We now correctly escape double-quotes as well as
space, comma, backslash, and newline.
zvsh: expand command about escaping cmdline args
zvsh: fix long line
zvsh: fix a "line too long" pep8 error
Merge pull request #23 from larsbutler/zvsh-pep8

zvsh: fix a "line too long" pep8 error
Merge pull request #22 from mgeisler/escaping

Fix command-line args escaping
added mapping stanza for regular files

When nexe is invoked with regular files as arguments, map these as regular files inside zerovm sandbox too

Ex.
When running:
$ zvsh cat.exe @file.txt

The mapping section in nvram will contain:

[mapping]
channel=/dev/1.file.txt,mode=file
Merge pull request #24 from pkit/add_mapping

added mapping stanza for regular files