BUG : correct default value alpha on legend patch

Fixes #3766

Adding `legend.framealpha` in #3369 changed the default value of
alpha on the legend patch from `None` -> 1 which has no visual effect
as `to_rgba` defaults to alpha=1 if no alpha is passed, but this
overrides setting the alpha component via `set_facecolor(rgba_value)`.

This PR

 - addes a new validation function `validate_float_or_None`
 - changes legend.framealpha to default to `None`
 - adds test that with the default value of `legend.framealpha`
   the alpha value of the face can be set via a rgba value
 - adds tests that setting the framealpha to a non-None value
   ignores the alpha value passed to set_facecolor