Refactor mutable parameter handling

The use of _mutable_parameters in the federation controllers was confusing.
The mutable parameters were the same each time check_immutable_params was
called, so there was no reason to allow passing in the mutable parameters.

In FederationProvider the mutable parameters was copied for no reason.

Similarly, filter_params is always used with the default keys so there's
no need to allow passing in the keys, and safer to not allow it.

bp identity-providers

Change-Id: I333fb23420282be350330dcb265f54da0fceac21
Refactor federation controller class hierarchy

The FederationProtocol class should not be a subclass of
IdentityProvider, since that means that FederationProtocol will
provide methods like create_identity_provider, which is confusing.

Also, MappingController can use the new base class to share the
base_url calculation.

bp identity-providers

Change-Id: Id9d8b3f7f5990cad66518c9dc5067670cdb58030
Remove unnecessary test methods

These functions aren't needed because the default behavior is to
do the same thing.

bp identity-providers

Change-Id: Ifc066b519cd3564384a617f7ee4009b9fc97f37c
Federation IdentityProvider filter fields on update response

The Federation IdentityProvider was failing to filter the fields
when an update was done. This could lead to extra fields being
returned to the client that should not be returned.

bp identity-providers

Change-Id: Ie909e2b7b7eaf06c555b45daef7de4474aceba2e
Merge "Refactor mutable parameter handling"
Merge "Refactor federation controller class hierarchy"
Merge "Remove unnecessary test methods"
Merge "Federation IdentityProvider filter fields on update response"