Recursive copy and remove for local storage backends

Make copy() and rename() for local storage backends work on folders.

Also adds additional test cases for copy() and rename() behaviour

cc @MTGap @DeepDiver1975 @karlitschek