server: fix bug in cf checkpoint serving
server: fix bug in cf checkpoint serving

In this commit, we fix a bug in the way that we previously attempted to
server cfcheckpoints. In the prior version we would never actually
fetch the current length of the cache. As a result, after the first time
the checkpoints were fetched, we would always continually grow the
cache rather than using what's there if sufficient.

In this commit, we fix this behavior by always checking the length, then
either keeping the rite lock, or downgrading to a read lock if the size
was sufficient.

ppcsuite/ppcd,ltcsuite/ltcd,ppcsuite/ppcd,wallclockbuilder/btcd,ltcsuite/ltcd,wallclockbuilder/btcd,btcsuite/btcd,tb00/btcd,tb00/btcd,davecgh/btcd,dajohi/btcd,davecgh/btcd,btcsuite/btcd,dajohi/btcd,dajohi/btcd