Do not allow overwriting of controllers proxy properties

It was possible to accidentally set the value of `controllers.foo`, where
foo is a container-retrieved controller value as specified using `needs`.

There is no case where a developer would want to do this on purpose, and
it can cause confusion. This commit throws an error when this occurs.