Compatibility & security improvements

+ Set database = user if database not set
+ Build command more incrementally in dump()
+ Escape all arguemnts in dump using escapeshellarg()
+ Get output as string instead of writing to file
+ Check mysqldump returned 0 & output is an array
+ If all successful, write output to file