Bug fix and catching occurrences of E_ERROR

The bugfix fixes a problem I found where standard error handler was not reached, meaning things happen such as E_USER_ERROR not halting execution as is expected, and errors not being displayed on development environments.

I've also added some extra code for catching PHP's E_ERROR fatal errors. These are not caught by user-defined functions specified with set_error_handler(), but can be detected in the function specified with set_shutdown_function(). I used a switch as there are other error types that could be caught in this way should users wish to do so, such as E_COMPILE_ERROR.