improve file.recurse performance v2

refactored a bit, less intrusive, more correct, and safer.  Recreated against HEAD of develop branch.  build passes tests in Travis.

https://travis-ci.org/erchn/salt/jobs/10062169