Fix $lex = $ref++ under use integer

Operators generally have targets, that is, scalars in the pad that are
used to return values.  The same scalar is used again and again for
efficiency.

If the value assigned to a target is a reference, that can be bad,
because the referent will last longer than expected, even forever.
$ref++ used to have this problem (bug #9466).

So commit v5.13.4-148-g7dcb9b9 fixed it by returning a new mortal if
the return value was a reference.

However, under ‘use integer’, the OPpTARGET_MY optimisation is per-
mitted on postdec and postinc (why only under ‘use integer’ I don’t
know).  Under that optimisation, $lexicalvariable = <some op> has the
assignment optimised away and the lexical variable becomes the operat-
or’s target.

If we skip assigning to the target and it is a lexical variable, then
the assignment never happens:

$ perl5.14.4  -le 'my $x=7; $_={}; $x = $_++; print $x'
HASH(0x7ff4a8806d00)
$ perl5.14.4 -Minteger -le 'my $x=7; $_={}; $x = $_++; print $x'
7
Make pp_postinc call set-magic on its target

Its target may be a lexical scalar (under ‘use integer’ currently, and
soon even outside of ‘use integer’).  The assignment in $lex = $foo++
currently gets optimised away and ++ writes directly to $lex.
Allow OPpTARGET_MY on non-integer postdec/inc

I don’t know why this was not done to begin with.  The previous two
commits fixed the only outstanding problems I am aware of.
Remove OA_DANGEROUS from non-integer postdec/inc

OA_DANGEROUS indicates that temporary copies may need to be made in
list assignment, to handle things like:

($a, $b) = ($b, $a);

In other words, an op type is flagged with OA_DANGEROUS if its return
values could occur elsewhere on the stack.

While pp_postinc may return a lexical scalar, that only happens when
the OPpTARGET_MY optimisation is happening; and aassign_common_vars in
op.c checks specifically for that.

Otherwise, it only returns a mortal or target, so it is not
OA_DANGEROUS.