Change ordering of operations in test.autotest, to improve tolerance of errors.

Previously, if a pack or unpack raised, it would interrupt the test before any of the calls to record().
With this change, it will record the result of each operation as soon as it completes, so any operation
that completes without raising will get a result recorded.
Implement AST walking.

This is still a work in progress; all input and output buffering has been disabled, and the
code generator is still present, with AST walking controlled by the _VSTRUCT_USE_AST_WALK global.
Remove code generator and all code using or used by it
Rework input argument checking.

ast.parse has been simplified, and now just returns the root node of the AST.
Argument checking is performed in the vstruct.api library and in the wrappers
in vstruct.init; vstruct.api.compile is also responsible for wrapping the
root node in something the user can call methods on.
Remove dead :show methods.

I don't even remember what these were used for originally.
Turn pack and unpack on compiled format strings into methods, in keeping with lua convention
Reinstate the "unpack" argument in vstruct.records (since it's no longer handled by vstruct.unpack) and document it.
Implement format string splicing.

You can now register a format string with vstruct.register(name, format), and splice it into another format
string with "&name". API is still subject to revision.
Update changelog.