Ensure SAML metadata schema compliance

EntityDescriptor must supply at least one of the role_descriptor
types in order to be valid.
Extend EntityDescriptor model relationships

Ensure code can easily navigate children of EntityDescriptors as
defined in saml-metadata-2.0-os.

These extensions allow EntityDescriptor to differentiate between the
basic notion of RoleDescriptor it previously recognised and the
descendants IDPSSODescriptor, SPSSODescriptor, AttributeAuthorityDescriptor.
Merge pull request #5 from ausaccessfed/bugfix/enhance-entity_descriptor-relationships

Bugfix/enhance entity descriptor relationships