Many new test cases added, that mostly work.  Currently 18 errors in 
without_rowid3.test.  Also there is a hack marked by a /*FIXME*/ comment 
on at fkey.c:547 that needs fixing.

FossilOrigin-Name: 39e32187b66405e00dbd44685f6cdd269c90f5e5
diff --git a/src/vdbeblob.c b/src/vdbeblob.c
index 4953579..0c4ebf6 100644
--- a/src/vdbeblob.c
+++ b/src/vdbeblob.c
@@ -178,6 +178,10 @@
       pTab = 0;
       sqlite3ErrorMsg(pParse, "cannot open virtual table: %s", zTable);
     }
+    if( pTab && !HasRowid(pTab) ){
+      pTab = 0;
+      sqlite3ErrorMsg(pParse, "cannot open table without rowid: %s", zTable);
+    }
 #ifndef SQLITE_OMIT_VIEW
     if( pTab && pTab->pSelect ){
       pTab = 0;