ProgramError has been moved to its own class.
Moved system functions in its own file.
Reviewed system functions. Moved xtrabackup related functions to their own file.
xtrabackup functions are now more generic.
Now using variables for temporary backup directory and archive.
Refactored variables and function names.
Refactored archive path & repository creation.