Introduce a framework to create features.

This new framework allows to rewrite the ~since_version of fields into a
more generic ~feature that can be also be tested outside of the
definition of fields.

This also allows to play with not yet published feature by adding the
feature in AlphaFeatures/BetaFeatures field, depending on the maturity
of the feature.