Implemented buffer-saver worker.

Took a lot of time to figure out the nitty-gritty, but was worth the
time spent, since the implementation was quick. Another in-flight
commit.

The binary storage technique used here is inspired by the 'Smile'
protocol (which is aimed to be binary JSON), but it is nothing like the
'Smile' protocol. I aimed for storage efficiency, so as to reduce the time
taken to write the save-files to disk, since the server shutdown is
waiting for the buffer-saver to exit. The overhead is 25% in worst case
(writing out 5 bytes, instead of 4, to represent 4-byte integers), but
in general case and real-life, the storage overhead is expected to be
outweighed by the benefits of storing block ranges efficiently.
Exit workers with code 1, so that they don't get restarted.

Also, use palloc(), instead of malloc(), to allocate the SavedBuffer
array.