read fully from urandom in the ca
read fully from urandom in the ca

This didn't cause any certificates to be made with duplicate serial
numbers because the primary key in the certificates table is the serial
number and so attempts to insert duplicates fail.

The cause is the use of rand/Reader.Read. rand/Reader.Read does not
perform the io.ReadFull that rand.Read does. Without the io.ReadFull,
less than all of the random part of the serial number would be filled
in.

Fixes #911.

letsencrypt/boulder,jsha/boulder,jfrazelle/boulder,mozmark/boulder,mozmark/boulder,hlandauf/boulder,lucasallan/boulder,benileo/boulder,ibukanov/boulder,patf/boulder,ZCloud-Firstserver/boulder,benileo/boulder,jsha/boulder,jcjones/boulder,jfrazelle/boulder,hlandauf/boulder,lucasallan/boulder,mehmooda/boulder,benileo/boulder,jfrazelle/boulder,ZCloud-Firstserver/boulder,jcjones/boulder,ZCloud-Firstserver/boulder,r0ro/boulder,letsencrypt/boulder,bmw/boulder,ZCloud-Firstserver/boulder,patf/boulder,bmw/boulder,jfrazelle/boulder,mehmooda/boulder,patf/boulder,jcjones/boulder,jsha/boulder,sophie-h/boulder,hlandauf/boulder,ibukanov/boulder,patf/boulder,r0ro/boulder,sophie-h/boulder,mozmark/boulder,bmw/boulder,mehmooda/boulder,r0ro/boulder,benileo/boulder,ibukanov/boulder,letsencrypt/boulder,mozmark/boulder,mehmooda/boulder,hlandauf/boulder,lucasallan/boulder,jcjones/boulder,sophie-h/boulder,r0ro/boulder