Change the message to include the gen_server PID

Modify the message format from:

    {pid(), {atom(), [non_neg_integer()], any()}}

To:

    {atom(), pid(), [non_neg_integer()], any()}

Using a deeply nested tuple is similar to how port drivers are handled
and is more efficient, since it doesn't require destructuring the tuple
returned from decode/1.

But flat tuples are consistent with the gen_tcp/gen_udp interfaces and
mirror the calling conventions for the rest of alcove, e.g.:

    alcove:chdir(pid(), [non_neg_integer()], iodata()])