Add Factory#respond_to? since method_missing is implemented.

A method_missing implementation should always also implement
respond_to?
(maint) Fix comment stating that [] is "probably never used".

It is certainly used for testing.
Add AST::BlockExpression and use this instead of ASTArray for statements

An AST::BlockExpression is now used instead of ASTArray to represent
a block of expressions/sequence of expressions when the intent is not
to collect the result of each expression/statement (as ASTArray does).

The grammar is changed to reflect this, and so is merging of classes
that now compose the result instead of appending (modifying).
Name classes with full name when parsing (like 3.1).

It is required that classes are fully named when parsed (i.e.
if nested, they must have the fully expanded name set). This
because they may be lazily loaded. This is required in order to
be able to transform a pops model to 3.1 AST.
(maint) Make LiteralValue be a Literal.

A LiteralValue should inherit from Literal.
Complete pops model to ast transformer.

This is still w.i.p; at this point all non lambda related constructs
are covered with transformations.