Add psi_context header and source

A psi_context contains all definitions which are used when
interpreting Scheme source. When parsing and interpreting,
a psi_context is required to resolve any undefined symbols.
Any errors occurred during this process leave the context
in an incomplete state, and unable to interpret safely.
psi_context.h: COMPLETE, PARSING context states

The two definitions are:

    PSI_CONTEXT_COMPLETE
    PSI_CONTEXT_PARSING

All states other that PSI_CONTEXT_COMPLETE are considered
incomplete, and a context in this state cannot safely be used
to interpret Scheme.
psi_context: Add psi_newcontext method

Returns a fresh context able to be immediately used for interpreting
or parsing.
psi_context: psi_newcontext implementation

Added _psi_init, a private method for initialization memory of
a psi_context. Sets default values, etc.
Makefile: Change how tests are listed

Similar to bd76519, for the purpose of making it easier to see
added/removed files.
psi_context: Add psi_destroy for psi_context

Frees a psi_context and its associated resources.
psi_context.h: Update psi_newcontext comments
Add context sanity test
Merge branch 'context'