Check that IdP names contain content before attempting translation.

getTranslation() will throw an unhandled exception when passed an
empty array, and there's no use in checking for translations of
empty stuff anyway.
aggregator2: allow the user to specify the MIME type of the response.
aggregator2: add dictionaries with translations based on the aggregator module.
aggregator2: clarify documentation about signing the aggregate.
aggregator2: add an index page that lists the available aggregates and links to them.
aggregator2: bugfix.
aggregator2: add filtering (by sets, as in the aggregator module) and entity exclusion (by entity ID). Both options can be set by request and as a default by configuration (per aggregate, not source). Both options accept multiple values (exclude several entity IDs, filter by several criteria). Results are cached according to the filtering and exclusion parameters.
aggregator2: fix package name.
Add the tracking identifier to the error message, so that we can track the logs and see what happened when someone gets this error.
aggregator2: add a hook to display a link to the aggregator2 page from the Federation tab.
aggregator2: update the documentation to reflect the latest changes and features.
aggregator2: fix markdown in documentation.
aggregator2: fix formatting to avoid excessive space between items in certain browsers.
aggregator2: add missing colons.
aselect: bugfix (do not try to throw a state-aware exception when no state is available!).
aselect: remove unnecessary function check_credentials() inside a plain PHP file.
aselect: reformat code in www/credentials.php.
aselect: remove check for nonexistent 'res' index in A-Select server's response. Look for 'uid' and 'organization' directly in the response array.
Fix typo in comment
Fix a bunch of documentation typos

Fix a bunch of typos in the documentation of the consent module