code: def table(rows, columns, *widths)
           node = TableNode.new(self, rows, columns, *widths)
           yield node if block_given?
           store(node)
           node
        end
docs: This method creates a new table node and returns it. The method accepts
   a block that will be passed the table as a parameter. The node is added
   to the node the method is called upon after the block is complete.
  
   ==== Parameters
   rows::     The number of rows that the table contains.
   columns::  The number of columns that the table contains.
   *widths::  One or more integers representing the widths for the table
              columns.