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