Metadata: Add support for Registration Information

Add functionality to the MetadataGenerationService to emit Registration
and Publishing Information (RPI) as requested in the eduGAIN metadata
profile.

This functionality is controlled by these configuration variables (with
sample values):

config.aaf.fr.metadata.registrationAuthority = "https://www.federation.org/"
config.aaf.fr.metadata.registrationPolicy = "https://www.federation.org/RegistrationPolicy/"
config.aaf.fr.metadata.registrationPolicyLang = "en"

Without these values set (which is the default), this functionality is
not active.

The sample configuration file fr-config.groovy.example has sample
configuration which is commented out by default.

The MetadataGenerationService pulls this information from the config and
stores this cached locally (can be refreshed with a call to
initializeRegInfoConfig() which is otherwise called only the first time
these settings are accessed).

There is a corresponding test in MetadataGenerationServiceSpec with
expected output in testvalidentitiesdescriptorwreginfo.xml
Metadata: MetadataGenerationSv as InitializingBean

Initialize the MetadataGenerationService as an InitializingBean to
address the comments raised in #157:

* removed commented-out constructor.

* implemented org.springframework.beans.factory.InitializingBean to get
  notifications after dependencies are injected.

* rename initializeRegInfoConfig() to afterPropertiesSet() to match the
  InitializingBean interface.

* drop the registrationInitialized variable tracking whether we have
  initialized.

* drop the calls to initializeRegInfoConfig() as the intializion gets
  called automatically after dependencies are injected.
** this also addresses the request to split the call onto multiple lines
   - the call has now been removed instead.

* and adjusted the spock test for the feature to force re-initialization
  by instead explicitly calling metadataGenerationService.afterPropertiesSet()
Metadata: RegistrationInfo: honour minimal and ext

Honour the minimal and ext (RoleExtensions) flags in the code generation
the Registration Info (RPI) extensions.  I.e., specifically, do not
generate this extension if either minimal is set OR roleExtensions is
not set.

Also pass these parameters to the populateSchema() method so that the
schema definition gets added ONLY if the RPI extension would be actually
generated.
MetadataGenerationService: clean up reginfo code

Clean up the Registration and Publishing Information extension to the
MetadataGenerationService as per comments by @braddleybeddoes in #157 -
specifically:
* use "x && !x.isEmpty()" to test if a string is set to a non-empty value
* correctly reference local variables instead of the fields in config
* drop unnecessary explicit "return" in front of the return value
  in the populateSchema function
MetadataGenerationService: refer to RPI XSD

Add the reference to the Registration and Publishing Info XSD in the
generated metadata (if the RPI namespace is actually used).

The XSD file itself can be downloaded from
http://docs.oasis-open.org/security/saml/Post2.0/saml-metadata-rpi/v1.0/cs01/xsd/saml-metadata-rpi-v1.0.xsd
- and it is the responsibility of interested parties to deploy the XSD
locally to validate the mdrpi extensions.

Adjust the test-case data accordingly.
Merge pull request #157 from University-of-Auckland/develop-metadata-rpi

Metadata: Add support for Registration Information