Allow wrapping lvalue methods

This allows lvalue methods to be wrapped, and maintains the lvalue attribute on the wrapped subs.  It also allows wrapping non-lvalue methods with lvalue arounds.

There is one limitation: if after modifiers are applied, array lvalues won't work properly.