to char[1], these checks should have been changed to Bucket.nKeyLength==0
* Support runtime declaration of functions. I ended up changing the grammar
to catch top level functions vs. nested functions. The reason is simple -
if we don't have functions properly declared at compile-time, function calls
cannot be resolved at compile time, and have to be resolved at runtime, which
ends up being much much slower (without the optimizer, that is).
It's no biggy though, the grammar change isn't that bad.
* updated alloc_persist to use critical sections
* changed extension shutdown to two-phase
* updated dependencies
* PR support (don't remember if there was any really)