Do not show exception to the end-user - use a proper error page instead

Uncatched exceptions are now shown on a page that does not leak potentially sensitive information (in some cases we leak the path), furthermore the request ID and remote address are now logged-in every log entry to produce somewhat more helpful log entries.

Before:
![screen shot 2014-09-11 at 14 20 11](https://cloud.githubusercontent.com/assets/878997/4233652/028a2d50-39ae-11e4-82ff-60f6e6798826.png)

Debug Mode disabled (after):
![screen shot 2014-09-11 at 14 05 41](https://cloud.githubusercontent.com/assets/878997/4233634/c23ed476-39ad-11e4-83a1-f05726418ef7.png)

Debug Mode enabled (after):
![screen shot 2014-09-11 at 14 13 10](https://cloud.githubusercontent.com/assets/878997/4233633/c23dd99a-39ad-11e4-8f16-b7824cc8333e.png)

Log entry (same for enabled and disabled):

```json
{
    "reqId": "e8f6aa8c3c6da19f07b82ef381a9e8a6",
    "remoteAddr": "::1",
    "app": "index",
    "message": "Exception: {\"Message\":\"blh<a>\",\"Code\":0,\"Trace\":\"#0 {main}\",\"File\":\"\\\/Users\\\/lreschke\\\/Programming\\\/core\\\/index.php\",\"Line\":28,\}",
    "level": 4,
    "time": "2014-09-11T12:13:26+00:00"
}
```
The === is pointless. `defined('DEBUG') && DEBUG` already yields a boolean result.