Make `pew in venv` start a subshell

Currently `pew in myvenv` is an invalid command. It makes sense for
it to run a sensible default command in the virtual env, and a
sensible default command would be a subshell. This proxies that
currently invalid command to be the same as `pew workon myvenv`.

Make a straightforward duplication of test_workon to test the same
feature of pew in.
Separate command from args in function signature

Keeping them separate allows us to reason about the command separately
from the arguments. It also allows us to avoid asserting that a command
exists, since the function requires it, though it does give a loophole
that falsey commands could be given (None, False, and '', for example).
Make inve default command a shell

Which shell is platform-specific. If on windows, it will open a new
powershell. Otherwise, it is based on the 'SHELL' environment variable.

The logic for choosing a shell is still needed in the shell() function
for now because the shell_check uses it. However, it's not needed on
windows, because the check doesn't happen there.

If the shell to run is chosen automatically (the default), then write
the message notifying the user that a subshell is being entered.
Allow more options to be called with shell

The inve function passes any additional keyword arguments that it
gets to be passed on to check_call. Let shell do that as well.
Check for path errors in inve

The primary difference between inve and shell is that shell checks
for errors on the PATH, and warns for them. Making inve handle that
check, and making it more polymorphic, sounds like a good idea.

the shell function still exists for backward compatibility.
Add docstring to inve function
Remove debug output on missing command

When the command that inve is supposed to run isn't available, we print
the keyword arguments dictionary that was passed into the inve function.
It's better not to have that be a user-facing interface.
Drop the shell function

Since inve is fully capable of everything that shell does, let's go
ahead and remove the shell function.
Stop handling windows in inve guard

Since we only run the inve guard on non-windows systems anyway, there's
no need to check if we're on windows to decide which shell to look for.
Shorten the inve guarding code