FIX ensure controller stack is updated when execution halted by an exception.

See: https://github.com/silverstripe/silverstripe-framework/issues/2467

popCurrent would be incorrectly not pop a controller from the controller stack if an exception was throw from inside the handleRequest() method.

This change captures the exception, ensures the controller is popped from the stack and passes the exception along.
Merge pull request #1039 from dnadesign/fixpopcurrentwarning

FIX ensure controller stack is updated when execution halted by an exception