jim.c: preserve source info on interpolation

Preserve the source info for an interpolated script where possible.
e.g.

  set script "puts $x"

Signed-off-by: Steve Bennett <steveb@workware.net.au>
jim.c: check for missing quotes, etc. in eval, expr

Throw an error if a script or expression is missing a trailing bracket, brace
or quote rather than simply ignoring the error.

Reported-by: Florian Schäfer <florian.schaefer+github@gmail.com>
Signed-off-by: Steve Bennett <steveb@workware.net.au>
jim.c: Restore errors for Jim_EvalFile()

Jim_EvalFile() needs to explictly add an error stack frame.

Reported-by: Florian Schäfer <florian.schaefer+github@gmail.com>
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Add md5 command.
Add base64 command.
Add totp / hotp command for One-Time Password generation.
Add rudimentary tests for md5 and base64.
Add rudimentary ØMQ command.
Remove unused SEND_BUFFER_SIZE define.
Revise and add the modules aes, base64, hex, md5, thotp, z85, zeromq.

This commit includes tests and some examples.
Fixed some memory leaks.
Add some more comments to the zeromq examples.
Add support for DEALER, ROUTER and PAIR flag.
Add zeromq inproc example.
Increment reference count on version string.

It seems the version string gets garbage collected otherwise
and `package require foo` returns a currupted version string.
Remove forced version string for compiled extensions.

The package loader handles a missing `package provide` already.
Remove unused defines.
Add ZMQ_STREAM, although it work only in one direction for now.
Remove superfluous EVP_EncryptInit_ex and EVP_DecryptInit_ex call.
Add more AES modes and tweak settings.
Add pwd to autopath and provide a Tcl package.