Strict boolean strategy

This adds support for a "strict" boolean feature, which is the same as the BooleanFeature but requires all strategies to pass. Tests for the new class are included.
It also adds support for passing arguments to strategies, since sometimes it's not possible (or very cumbersome) to have them ready at the time we call `FeatureRegistry::init()`. This way you can call `FeatureManager::isEnabled('Cool Feature', $extra_args);` and have the strategy implementation use those extra arguments for its checks.