Revert "Proxies: Simplified setup such that better nesting is supported."

This reverts commit 35f0541afc3f96b210e6f2db6d15b278fc830c11.
If project() returns vector_base<> or matrix_base<>, it will result in a temporary
object being created. This is desastrous for performance, so we can't do this.