Don't allow insert_{before|after} root node

This can be changed if support for node lists is added to the public API.
Merge pull request #220 from nwellnhof/node_insert_fix

Don't allow insert_{before|after} root node
runtests.py: split argument of '--program' so that options can be given.

e.g.

    --program 'myprog --simple --foo=bar'
runtests.py: renamed a regex.
Added pathological_tests.py to test suite.
Renamed runtests.py -> spec_tests.py.
Changed more runtests -> spec_tests.
Add pathological_tests.py to archive.
spec_tests.py:  return success status on --dump-tests.
spec_tests.py:  Replace → with tab when dumping json.
Test that libcmark can be used by C++ code
Use prefixed names for symbols from inlines.h
Use prefixed names for symbols from references.h
Always define short name macros for private symbols

Since chunk.h and buffer.h are private now, there's no need to optionally
disable the short name macros.
Remove outdated public short name macros
Merge pull request #221 from nwellnhof/cplusplus_test

Test that libcmark can be used by C++ code
Merge pull request #222 from nwellnhof/short_name_cleanup

Short name cleanup
Removed unnecessary assignment.

Clang static analyzer pointed out that the value assigned to 'pos'
is never read.
Avoid potential memory leak.

Previously, if malloc failed to allocate 'newstack', the function
would return without freeing 'stack'.  Pointed out by clang static
analyzer.
Clarified logic in remove_delimiter.

Motivated by warnings from clang static analyzer.