Changed element proxies so that they reuse a single instance of struct properties instead of constructing a new one on every access, so that struct copy elision can work on code that uses them.