core: aggresively clean-up bufferlists on heap

The Lua GC won't track how big the bufferlists are. Rather than relying
on the GC to always free the bufferlists we do it whenever we can.
Without this, creating a bunch of large bufferlists will cause an OOM
kill before the GC even knew what hit it.

Signed-off-by: Noah Watkins <noahwatkins@gmail.com>