WIP: Consider showing special error messages for some known errors

We should catch common errors and show a human readable reason to the user. These will have to use fuzzy matching of the error string.

Work in progress, not ready to be merged.

- [x] Go through support emails that were sent automatically and list the errors in a spreadsheet with number of occurrences, trying to group similar errors together.

- [x] Show a message if Disk quota exceeded.

> ````
zip I/O error: Disk quota exceeded
zip error: Output file write failure (write error on zip file)
````

> `mysqldump: Got errno 122 on write`
> `Errcode: 28`
> `mysqldump: Got errno 122`

- [x] Fatal memory errors could show message about trying database only or excluding some files. Would likely need to have improved the exclude files memory footprint.

> `Fatal error: Allowed memory size of`
> `Fatal error: Out of memory`

- [x]  Gateway timeouts, nginx timeouts etc. (basically anything other than a PHP timeout) should just reload the page as the backup is likely still running in the background.

> `Operation timed out`
> `504 Gateway Time-out`
> `Connection timed out`
> `504 Gateway Timeout`
> `502 Bad Gateway`
> `Fetching of original content failed with the following error: Proxy Publisher Failure - TIMEOUT.`
> `Read Timeout`
> `Network Error (tcp_error)`
> `524: A timeout occurred`

- [x] PHP timeouts

> ````
PHP Fatal error:  Maximum execution time of 60 seconds exceeded
````

- [x] 500 Internal Server Errors

Not clear what the issue is here but likely a deeper problem. Seems sometimes it's a timeout

> ````
500 Internal Server Error
Request Timeout
````

- [x] 503 - Service Unavailable

Is this just a timeout? Probably. Yep, Varnish serves a 503 on timeout

> ````
Error 503 Service Unavailable
Service Unavailable
Guru Meditation:
XID: 1187361899
````

- [x] 404 errors

> `Nothing found for`
> `Page not found`

Why would these happen, seems to be pretty common, maybe misconfigured servers?

- [x] Safe Mode issues

> ````
file_put_contents(): SAFE MODE Restriction in effect.  The script whose uid is 10008 is not allowed to access /var/www/vhosts/vfgcpa.com/httpdocs/wp-content/c4ca4238a0-backups owned by uid 48, /var/www/vhosts/vfgcpa.com/httpdocs/wp-content/plugins/backupwordpress/functions/core.php, 281
 ````
> ````
file_put_contents(/var/www/vhosts/vfgcpa.com/httpdocs/wp-content/c4ca4238a0-backups/index.html): failed to open stream: No such file or directory, /var/www/vhosts/vfgcpa.com/httpdocs/wp-content/plugins/backupwordpress/functions/core.php, 281
 ````
> ````
fopen(): SAFE MODE Restriction in effect.  The script whose uid is 10008 is not allowed to access /var/www/vhosts/vfgcpa.com/httpdocs/wp-content/c4ca4238a0-backups owned by uid 48, /var/www/vhosts/vfgcpa.com/httpdocs/wp-content/plugins/backupwordpress/classes/schedule.php, 580
 ````
> ````
fopen(/var/www/vhosts/vfgcpa.com/httpdocs/wp-content/c4ca4238a0-backups/.schedule-default-1-running): failed to open stream: No such file or directory, /var/www/vhosts/vfgcpa.com/httpdocs/wp-content/plugins/backupwordpress/classes/schedule.php, 580
 ````
> ````
ZipArchive::open(): SAFE MODE Restriction in effect.  The script whose uid is 10008 is not allowed to access /var/www/vhosts/vfgcpa.com/httpdocs/wp-content/c4ca4238a0-backups owned by uid 48, /var/www/vhosts/vfgcpa.com/httpdocs/wp-content/plugins/backupwordpress/hm-backup/hm-backup.php, 818PCLZIP_ERR_READ_OPEN_FAIL (-2) : Unable to open archive \'/var/www/vhosts/vfgcpa.com/httpdocs/wp-content/c4ca4238a0-backups/vfgcpa-com-default-1-complete-2013-02-18-21-52-23.zip\' in wb mode
````

- [ ] MySQL Table Crash.

We could consider auto optimizing / repairing tables, or at least offering to do so.

> ````
mysqldump: Got error: 144: Table \'./chamkap_wrdp2/wp_wassup\' is marked as crashed and last (automatic?) repair failed when using LOCK TABLES
````

> ````
mysqldump: Couldn\'t execute \'show create table `fswp_postmeta`\': Table \'./frillseeker/fswp_postmeta\' is marked as crashed and should be repaired (145)
````

> ````
mysqldump: Couldn\'t execute \'show fields from `wp_bwps_log`\': Incorrect key file for table \'/tmp/mysqltmp/#sql_1364_0.MYI\'; try to repair it (126)
````

> ````
PCLZIP_ERR_MISSING_FILE (-4) : File '/srv/www/backupwordpress.dev/.git/description' does not exist
````