Fix FactoryGirl errors when running migrations

Prior to this with the gem set to fale we lost several useful features of actually having the FactoryGirl gem installed, especially around generators.

Bringing the gem back the following error returned:

    rake aborted!
    Sequel::DatabaseConnectionError: Mysql2::Error: Unknown database 'saml_development'
    ...

This commit ensures that factories which use the :class symbol put the names of the associated classes in quotes. This corrects the migration problem above in both development and test. Future factories using the :class symbol must also put the class name in quotes.
Define CA Certificate structure

Utilised in SAML 2 Metadata to distribute trusted CA certs to federation endpoints.
Refine modeling of CA certificates and info

Due to complications with establishing a low level database relationship between the previously modelled CAKeyInfo and CACertificate this implementation refines the implementation to store all certificate data within the CAKeyInfo model.

This is appropriate as any real world case we've ever worked with directly maps an xmldig KeyInfo element to a single X509Data element.

As the xmldsig schema strictly does allow for multiple X509Data blocks this model will need to be extended should this ever be required. Should the the non modelled elements RetrievalMethod, PGPData, SPKIData or MgmtData be required this model will also need to be extended.
Grumpy coder hates popups in the OS

Better handled as locally installed gem for those that want to work with it.
Model XMLDSig KeyInfo/Certificate

Due to complications with establishing a low level database relationship between KeyInfo and Certificate this implementation stores all certificate data within the KeyInfo model.

This is appropriate as any real world case we've ever worked with directly maps an xmldig KeyInfo element to a single X509Data element.

As the xmldsig schema strictly does allow for multiple X509Data blocks this model will need to be extended should this ever be required. Should the the non modelled elements RetrievalMethod, PGPData, SPKIData or MgmtData be required this model will also need to be extended.
DRY the CaKeyInfo and KeyInfo implementations

TO many parallels to not use inheritance here and both ultimately utilised for XMLDsig schema in SAML Metadata and Shibboleth custom Metadata extensions.
Push subject and issuer into Certificate and DB