Implementation
  
  * SQLite Virtual Table API allows the programmer to
    * create and iterate cursors
    * provide a list of indexes
    * allow sqlite to filter results or do it on the backend
  
  * With SQLite::VirtualTable, one writes a derived class providing :
    * CREATE      - When the table is created or used, initialize a new object.
    * DECLARE_SQL - Called after CREATE to indicate the columns in the table.
    * OPEN        - When a query is run, open a cursor.
    * BEST_INDEX  - Given a set of constraints, choose the best index and
                    estimate the cost.
    * FILTER      - Given an index and bind parameters, filter the result set.
    * NEXT        - Iterate one step.
    * COLUMN      - Return the value for a column.
    * ROWID       - Return a unique row id.
    * EOF         - Indicates that there are no more rows.
    * CLOSE       - Close a cursor.
    * DROP        - Drop the virtual table.
    * DISCONNECT  - Disconnect from the database.