Clean up timezone warning in PHP 5.4
Propagate PHP errors to the front end.

 * Add a catchable ErrorException subclass.
 * Register Genghis as the PHP error handler. Throw our new ErrorException on PHP errors.
 * Handle API errors inside API controller.
 * Add an extra layer of try/catch to controller route handlers to ensure more pretty error messages.