Add missing `Hash` methods to `AC::Parameters`

This is to make sure that `permitted` status is maintained on the
resulting object.

I found these methods that needs to be redefined by looking for
`self.class.new` in the code.

* extract!
* transform_keys
* transform_values
Refactor code to reduce duplicate `self.class.new`