Stop using precomputed SQLite testdb name, fix test-end bug in replicated.t

This was an... odd one. Originally the problem manifested as a classic
var-sub-sub closure problem, leading to $db_file being captured and tripping
a more involved testcase that is coming in a subsequent commit. However while
getting rid of the reference itself was easy, this led to the outer coderef
itself being "leaked out".

The reproducing oneliner is:

~$ perl -MScalar::Util=weaken -Mstrict -Mwarnings -e '
 sub foo {
   my $rv = sub { "wtf" }; return $rv;
 }

 my $should_be_gone;

 {
   $should_be_gone = foo();
   weaken ($should_be_gone);
 }

 warn $should_be_gone;  # why is this still defined@!%#$!$#
'

Various tools indicated that it is somehow attached to the PAD of the static
foo() sub, but I could not figure out *why* exactly this is happening, nor
how to properly list it: PadWalker's closed_over() shows nothing for foo()

Thus invoking doge on the whole shebang, and moving on. SUCH WTF, WOW!

Incientally changing things to use the current SQLite filename revealed
a bug in t/storage/replicated.t, which was never noticed as it only
resulted in annoying warnings under Win32 global destroy (test
teardown).
Fix long standing issue with resultset growth on repeated execution (GHPR#29)

The "save the SQLA argstack" dirty solution introduced in 975b573a actually
resulted in an infinitely growing nested data structure, containing the
history of *every* reinvocation of the resultset. Scale back the problematic
part, though this is still an interim workaround. A DQ-based stack should
make this much cleaner.
Massive incompatible change of ::BlockRunner internals

It was never documented as usable externally (though folks do use it, sigh)
This last set of changes settles the design for proper documentation and
opening up