Dynamically embedded data support, ensure right working directory

Release build script can dynamically embed versioning or other data
directly into the script (such as commit ID, release timestamp,
releaser, commit date, checksums, etc.) optionally. Path to running
program is canonicalized and any symbolic links in it are
resolved. Canon path is used to change the process's working directory
to that of the script itself if it is not already there (e.g., if
invoked from some other directory by a GUI or a command line),
allowing the script to continue assuming its package data is in the
relative path "modules/".