3.0 - Improve cell/element error handling

This fixes the problems described in #3664. I've also converted missing element errors into exceptions, and cleaned up some dead code.
I don't mind incorrectly rendered pages. I'm a bit more worried about showing raw exception messages in the interface, stuff that might leak database information for example.

So, leaving the exception is fine for missing element, but since php is derp, we need to workaround the fact you cannot let the exception bubble up here