Improving deep folder structure performance.

Previous functionality loaded parents multiple times. The use of
recursive path finding was also quite inefficient.
Fixing renaming bug by implementing File/Folder object caching.

Resolves #58.