Merge unit_testing branch into developement for field testing

This merge presents a plethora of changes.  Through unit testing, I've made changes to make the algorithms more efficient, less error prone, and easier to read.  Among these changes are the following:

-  result_data_boolean now contains a string called "path" which, when returned as the result of an iteration, will represent the path that the result refers to.

-  checks at the beginnning of copy_iterator_class and delete_iterator_class to see if the iterator was at the "beginnning" were removed because they didn't do anything (the "beginning" is defined as the path given, plus one iteration, the result of which is the first path in the folder)

-  new approaches to the algorithms regarding recursive copy have been implemented to be more efficient and accurate.