implement optional recursive iterator

Defaults to not following symlinks.  When links are followed, there
is no loop protection.

Removed benchmarking section since it could be confusing now that
Path::Tiny has its own tiny, recursive iterator.
Use autodie::exception directly.

Load time drops from 100ms to 60ms.
Test suite runtime drops from 1650ms to 1250ms.

The amount of code is not too bad at all.

Also...
* Using SEEK_SET rather than a hard coded constant
* lstat and stat now properly throw exceptions
Test that stat and lstat throw exceptions.
refactor autodie::exception throwing

Most of the exception code arguments are the same, so this refactors
them into a _throw subroutine.

It no longer checks the return value of print, since any errors will
be caught during close and all our writes do an explicit close with
a check.
restore 2.14 autodie version check
updated Changes
Load File::Copy on demand.

Its only used in one place.
Load Fcntl on demand.
Load File::Temp on demand.

About 20% has been shaved off so far in this branch.
Load Cwd on demand.

Doesn't have an impact because of File::Spec.  Getting to that.
Load File::stat on demand.

About 5% of load time.
Load File::Path on demand.
fix up prereq detection
updated README and META
updated Changes
fix up docs typo
bump Changes
fix up contributors in mailmap
Remove benchmark code

It's now in a separate repository
git://github.com/dagolden/zzz-path-tiny-benchmarking.git
tidying