Add the ability to refresh the metadata

This commit updates all consumers of the InitializrMetadata to go
through an InitializrMetadataProvider instead of having a direct
handle to the metadata instance.

A default InitializrMetadataProvider implementation that looks up
for some metadata from projects.spring.io has also been added.

That method is actually cached with a TTL of 10 minutes

Fixes gh-26