GatingSet.sql : added a time stamp column to the query

OpenCytoPreprocessing.r :
-added the generation of a time stamp associated with the gating set creation
-added the capability of loggin on error

SampleGroups.r : 'All Samples' samples group is now properly removed from both of the returned data structures on the server side, if needed (if 'All Samples' is not the only sample group that is)

opencyto_preprocessing-0.00-0.01.sql & opencyto_preprocessing.xml : modified the schema definition to include a time stamp column

OpenCyto.js :
-added a dirname function that extracts the full folder's path out of a given input path
-added a largest common substring function

SuperBoxSelect.js : modified to be able to perform local multi-sort

OpenCytoPreprocessing.js :
-the chosen workspace and sample group are 'cached' and only if they changed the logic refetches the correct table of samples and their phenodata
-filtering of the samples depending on the sample group used to be done on the client side, thus burdening the browser; now the filtering criteria are sent to the server and an already filtered subset is returned
-the update of the table now is done only once, if either the study variables or the sample group changed since last time the table was updated
-with fix in SuperBoxSelect.js above, proper multisorting is added to study variables combo box, now study vars in both of the groups 'External' and 'Keywords' are properly sorted
-a limitation, where sample files had to all be located in exactly one folder, was corrected using the largest common substring function above, looking for the deepest common root between all of the samples
-added time stamp to the tooltip of the analyses list
-the navigation logic has been refactored significantly, hopefully, improving usability as the user now is not able to take faulty paths and is also guided with drop downs and focus transitions as to what should be selected