Add the concept of allowed_mds to restrict message digest options

There are various situations where a CA may want to allow multiple
digests on a per CAConfig basis. In the past the
R509::CertificateAuthority::Signer allowed you to override the
message_digest property of R509::Config::CAConfig, but since this
allowed arbitrary MDs on any CA (including things like MD5) this was
deemed unsafe. As of this commit CAConfig now takes a default_md
(renamed message_digest) as well as an optional allowed_mds array. If
you do not supply the array R509::CertificateAuthority::Signer will
behave like 0.9.2 and earlier and permit any message digest algorithm.
If you do supply it then issuance from that CAConfig will be limited to
the digests in the array. The default_md *MUST* be in the allowed_mds.
If you don't do this yourself the code will conveniently do it for you
and then one day you'll be confused because the config.allowed_mds
accessor returns an array that has an element you aren't passing in.
So, you know, add it explicitly.

Additionally there was some refactoring to make it easier to change our
default message digest in R509::MessageDigest in the future.