Add the new opush_string internal interface and correct issues found.

  opush_string is expected to be useful to create complex data types
made available to the language, a simple example would be:
    opush_string("\
class cons_t {\n\
    cons_t cdr;\n\
    auto car;\n\
};\n");
  Note that it must be called after the last call to opush_input in
ocfg.c to be made available to extra code, that is, to be read
before user input, as the input is vector is used as a stack.
Better error message when parsing a grouped expression.

  Expressions groups are either a single expression or separated by commas,
but parsing is stopped when it does not understand input; this change
makes a more readable error message in the few cases tested, usually
due to a typo.
Correct parsing of explicit vector element initialization.

  Also add a small test case for the conditions being corrected in
this patch, usually in the format:
	vector[offset] = data_initializer;
Silence warning about unused variable.
Add simple namespace support for the language.

  The support should be close to feature complete, but not enough
tests to corner cases were added.
  It supports shadowing function names, symbol names, nesting and
extending namespaces, as well as accessing the shadowed root
namespace symbols with a preceding ".".
  Only class definitions can be shadowed, base types (e.g. int32_t)
or special builtin types (e.g. hash_t) cannot be shadowed.
  The new test 55 in check/test should give a clear example of how
namespaces are supposed to be used.
  Note that currently there is no way to "import" symbols from
another namespace in the current namespace, and namspace specification
always start from the (omitted) root namespace identifier.