Note in perldelta that C<no feature;> now means reset to default.

The behaviour was changed with commit 39ec54a59ce332fc.
In deparse.t, rename %reason to %meta.

Whilst skip and todo both have "reason"s, subsequent refactoring will use it
for other purposes.
Add a 'context' feature to deparse.t, to better test ambient pragmas.

Call ambient_pragmas() before each deparse test. This will allow use to remove
the constraints of the current default, which is to always run under
use feature ":5.10";
Avoid deparse.t testing everything under use feature ':5.10'

Only use feature ':5.10' in those tests that actually need it. This will let
us add tests for deparsing without any features enabled.
Add tests for deparsing C<say> under various combinations of pragmas.

These mostly codify the current output of B::Deparse, which is not invalid,
but might not be considered to be the optimal output. (It's defensive, in
that it uses C<no feature;> which will ensure consistent behaviour whatever
pragma context the output is evaluated in.)

Some are TODO for the cases where B::Deparse is wrongly outputting
C<CORE::say> instead of plain C<say> and C<CORE::__SUB__> instead of plain
C<__SUB__>.
Fix regression in deparsing say (etc) under use 5.10.0

Commit 6634bb9d0ed117be introduced a regression, causing this

    use 5.10.0;
    say "Perl rules";

to be deparsed as C<CORE::say>, not C<say>, etc. It wasn't actually possible
to write tests for this within the t/deparse.t framework until the recent
refactoring.
In B::Deparse, refactor the two places that feature::current_bundle()

Converge the code, so that it's easy to extract out into a subroutine.
In B::Deparse, refactor common code into _features_from_bundle().
In Deparse, use $feature::hint_mask directly, instead of copying its value.

Also, require feature unconditionally.

Deparse already directly uses data from feature, switch and warnings, so
this isn't a new trend in encapsulation breakage. Previously Deparse copied
the value of $feature::hint_mask, and lazily loaded require in 4 places.
In B::Deparse::_features_from_bundle(), don't call feature::current_bundle()

Instead, directly access feature's package variables, as B::Deparse already
does in 14 other places. (It also has its tentacles firmly into strict
and warning's package variables - it's not fussy)

feature::current_bundle() was not part of the documented API of feature
either, so B::Deparse wasn't clean previously.
In feature.pm, use a consistent code style in import() and unimport().

There were a couple of inconsistencies (shift with/without an explicit @_,
exists with/without(), !@_ vs @_ == 0) which turn out to date back to
before 5.10.0

Also fix an inadvertent use of a single element array slice with a simple
array lookup in current_bundle().
Merge the code common to feature::import and feature::unimport.
In feature.pm, inline normalise_hints() into __common(), its only caller.

normalise_hints() was added after 5.14.0 was released, so has never been in
a stable release. Hence it's totally safe to kill it.
In feature.pm, inline current_bundle() into __common(), its only caller.

current_bundle() was added after 5.14.0 was released, so has never been in
a stable release. Hence it's totally safe to kill it.
Note the improvements to B::Deparse and feature in perldelta.
Merge the feature and B::Deparse refactoring to blead.