Add experimental command "PRAGMA wal_blocking_checkpoint", which uses the busy-handler to block until all readers have finished in order to ensure the next writer will be able to wrap around to the start of the log file.

FossilOrigin-Name: 7e3fc2c833a5baa08820c499867b6902bdc2ed5a
diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index c02a0e4..8b4fe59 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -3036,7 +3036,7 @@
 int sqlite3TempInMemory(const sqlite3*);
 VTable *sqlite3GetVTable(sqlite3*, Table*);
 const char *sqlite3JournalModename(int);
-int sqlite3Checkpoint(sqlite3*, int);
+int sqlite3Checkpoint(sqlite3*, int, int);
 int sqlite3WalDefaultHook(void*,sqlite3*,const char*,int);
 
 /* Declarations for functions in fkey.c. All of these are replaced by