Use the correct way to shut up an unused variable warning.
More robust code to save/restore PL_curpad/PL_comppad.
Try to fix attributes under Perl 5.14.  This is horrifying.

  perl -E 'sub MODIFY_SCALAR_ATTRIBUTES{}; sub inc { my ($x, $y) : Foo = @_; return $x + $y }; say inc(1,2)'

fails under Perl 5.14 (and likely other versions) because Perl emits an
extra pushmark op before the method calls to attributes::import.

This patch tries to address that: if it sees that the mark has been
pushed twice, it pops the duplicate mark, and it does some optree
traversal to try and patch out the extra pushmark.

This is a crude hack at best, and requires *much* more testing,
but at least unblocks types for 5.14.