Made `freeze()` less persnickety

Added convenience check to `freeze()`. If a whole table is passed as a result set, rather than a result set, calls `result.all()` to automatically "do the right thing."