Move code: Extract some mvc_test into params_test
Permit multi-embedding of *Controller

This (breaking) change:
- Requires that all embeddings of Controller are by pointer
- Performs an exhaustive search of embedded / anonymous fields for
*Controllers to set (previously it only searched in the first field)
- Ensures that all *Controller pointers are set to the same instance.

The goal is to standardize the mechanism of "mixing in" behaviors
(fields, interceptors, etc) by giving each "trait"
(Controller-embedding class that provides shared functionality) access
to the same *Controller, which is accomplished by simply duplicating
the pointers in each type.

The developer should always embed *Controller as the first field when
making either a regular user-facing Controller or one meant for mixing.