Reduce concurrency issues with the CRL file.

By making CrlFileUtil a singleton and adding a ReadWriteLock, we
can prevent many of the concurrency issues we are seeing in the
cert_revocation spec test.

This patch is not totally bullet-proof.  Occasionally, a test will read the CRL looking for a revoked serial before the thread writing to the CRL has unblocked.  Nevertheless, running the spec tests in parallel should now be more reliable with this patch.