::Runtime -- Run a TestML Function

   The TestML Code and Data get compiled into a Function, and the Function
   is run by this Runtime class. Typically data is manipulated by Bridge
   functions, and at some point Assertions are made. The assertions are the
   things that call Test::More::is and Test::More::ok.

   ::Compiler -- Turn a TestML document into a runnable TestML Function.

   A TestML "document" is comprised of 3 main parts: Meta, Code, Data. This
   information often is in a single TestML (.tml) file or string, but it
   doesn't need to be. The information can come from anywhere and be in any
   form that is supported; it just must all be present when it is needed.

   The Meta information must be known first. It dictates where the Code and
   Data come from, and in what format they are. Also the Code and Data
   formats depend on the TestML API Version that is supplied. Before the
   Code and Data can be compiled, a Version must be supplied (no default)
   and then the compiler must support that Version. This allows TestML to
   change over time with no confusion.

   The compile function returns a Function object, which in turn contains
   an array of Statements and an array of Data Blocks. This function is the
   run by the Runtime object.

   A Function is just an array of "executable" statements that are
   proceseded in order. Some of the statements maybe be function
   declarations and function calls. The Compiler produces a top level scope
   function, with a Data set, and a Namespace for variables.

   All functions are anonymous, but they can be assigned to variables, and
   then you can call that variable name.