Use default value of 1 hour if cacheDuration/validUntil is missing.
- Fixes #151.
- Refactored calculation of MetadataValidUntil to an extension method on ICachedMetadata to make it common for federations and idps.