Feature 896 fileio

### fileio operations ###
getDirs
getPagesXML
create_dir
delete_dir
save_file
read_file
move_file
rename_file
copy_file
delete_file
gs_chmod
getFileExtension
fileLog

### backup functions ###
fileHasBackup
backup_datafile
restore_datafile
restore_backup
backup_page
restore_page
getBackupFlePath
delete_page_backup

### non file related stuff ###
uppercase
titlecase
delete_page
clone_page
getNextFilename


### Deprecated - legacy supported ###
createbak
delete_bak
undo

### Various Features ###
#895 clone page titles

### About ###
This replaces all fileio methods with wrappers, these wrappers make our code more centralized and easier to move into oop, also add features like performance logging , event handling, exception handling, and general logging ( which fill fix the numerous file loads we do not need, dups and non cached items )

Of course this will add some performance hit to these , any function does. But well worth it, we can also change all file operations instantly to optimize for performance or platform issues. 

We can make these atomic now or add callouts to abstract data reading and writing to cloud based or database implementation fairly easily.

And it makes coding new stuff that moves files around and debug existing code much much easier.

__Know Issues__
There will be some issues with this, mostly return handling, there is almost no error handling here. By design this is to catch errors and decide how to handle them, but everything should return proper success codes. There are some blind chmods because i think we already know its not a fatal issues and has caused a ton of issues, but this might be toggleable in the future to change this. For example install flow assumed @ supression for certain things.

we now have constants for chmodfile and chmoddir
also there are operations we are doing with inline chmod that are probably wrong, as they are not predicting umasks, nor chmod after the operation.

we are also using some strpos stuff to get relative paths which will have to be changed if global paths set data dirs above gsroot.