Merge branch 'exodist/master' into HEAD

This introduces circular::require which will issue warnings if you load
modules that have circular dependencies from within a module that uses
perl5i.

Care has been taken to supress warnings that would issue fourth from
perl5i dependencies themselves which do have circular dependencies
(DateTime).

this fixes #217
note pick and pick_one in the change log

For #145

Signed-off-by: Michael G. Schwern <schwern@pobox.com>
My file_notes.txt mistakenly got into the MANIFEST
Make pick() not always return in the same order as the @array.

This simulates what would happen with a normal shuffle & pick algorithm.
Revert "Merge branch 'exodist/master' into HEAD"

This reverts commit 6a51af0f6ec0f2d7d3fa2271ff114744efe8f079, reversing
changes made to b57203407b6c56e00349676d203f4ffa2958d2d5.

This change doubled load time.  It will instead be moved into the issue/217 branch to
clear the way for release and so it can continue to be worked on.

For #217
POD typo
Smooth over the Carp 1.25 formatting change using Carp::Fix::1_25.
Mostly fix the fight between the open pragma and autodie.

utf8::all switched from using a wrapper around open to using the open pragma.
Unfortunately, autodie loses the open pragma.  This fixes most of the problem.
The only thing remaining is because autodie does not recognize our open() as
CORE::open() it formats the error message a little differently.  At this point
I'd rather see the problem fixed inside autodie than hack the bug further here.

I'm not entirely sure why its kosher to have a function named open() that
calls open() (which is autodie's open).  It was necessary to name our
function open() so that autodie produced a sensible error message.

In addition:

* Update utf8::all to the latest to avoid inconsistencies between our
  hacks and theirs
Merge pull request #223 from schwern/utf8_vs_autodie

Mostly fix the fight between the open pragma and autodie.
Revert "Merge pull request #223 from schwern/utf8_vs_autodie"

This reverts commit 8912fc6388e1a7270a6e412c6caa344f5d4f7877, reversing
changes made to 829827e1015fe8f50a75eae21a18a158c85475a0.

The fix is fine, but autodie fixed the problem and this would get in the way.
autodie 2.12 now honors the open pragma and plays nice with utf8::all.

For #220 and #218
Merge branch 'bug/autodie'
Version 2.10.0
Fix the new examples in the docs.
swapping head2 for head3 when it comes to functions/methods as was suggested in #208
Merge pull request #232 from notbenh/issue/208

swapping head2 for head3 when it comes to functions/methods for #208
Adding the as_* methods as requested in #230

NOTES/POSSIBLE ISSUES:
  - the test is calling ::2 directly rather then latest.
    I was unsure on the going convention for a version specific change
  - I am not using alias to build the aliases.
    It seemed a bit heavy handed so I am using the old-style delegation.
Adding a test template to be copied for making new test files.
Merge pull request #234 from notbenh/issue/230

Adding the as_* methods as requested in #230
Bring t/dump/formats.t up to standards.