Allow the node to run with history pruned.

To avoid stalling the downloads of other peers, we disconnect those
who ask us for a block we don't have anymore.
At a minimum, assert() is wrong for runtime conditions such as disk errors or out-of-space conditions.