more tests for simple signatures
deparse subroutine signatures

Code that could have come from a simple signature is deparsed as a
signature if (a) the feature is enabled in the current deparsing context,
(b) the assignment lhs is a list of one or more lexical variables (being
declared) and undef ops, and (c) the -x option is set to less than 2.
Putting "our" or other items into a signature, or using an explicit
empty list, can make a signature generate code that won't be deparsed
as a signature.

Currently, if the first thing the deparser tackles is a subroutine
definition, then it doesn't initially have any idea of the hint hash
state that prevailed outside the subroutine definition.  So it won't
perceive signatures having been enabled, and so won't deparse as
a signature even if the code did actually result from a signature.
The opposite mistake can also occur.  Whether signatures were really
enabled for a sub is actually visible in the sub's first state op.
The deparser could do a better job by using the sub's first state op as
a guess of the file-scope hint hash state.