Fix shell creation in XP edge-case scenario

Today I found a scenario where spawning shells on Windows XP SP0 wasn't
working. This wasn't happening on Windows XP SP2, so it could be specific
to SP0.

The user was an administrative user, but running `shell` from the
Meterpreter prompt was resulting in the following error:

    meterpreter > shell
    [-] stdapi_sys_process_execute: Operation failed: 1314

1314 indicates `ERROR_PRIVILEGE_NOT_HELD`, which for some reason implies
that the current user can't impersonate the current token for the
attempted  call to `CreateProcessAsUser`.

The code attempts to fallback on `CreateProcessWithToken`, but this isn't
available on XP.

This commit creates another fallback which simply calls `CreateProcess` if
the user decides that they want to force a shell via the `-F` parameter. While
it might not function the same way as the `CreateProcessAsUser` call does,
at least it gives an interactive shell.

Example run:

```
meterpreter > shell -h
Usage: shell [-h] [-F]

Starts an interactive shell on the remote machine.

OPTIONS:

    -F        Force a non-impersonated shell if impersonation fails (Windows only).
    -h        Help menu.

meterpreter > shell
[-] stdapi_sys_process_execute: Operation failed: 1314
meterpreter > shell -F
Process 856 created.
Channel 2 created.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Owner\Desktop>
```

### Verification

- [ ] Windows XP SP 0 must be used/tested.
- [ ] Executing `shell` must result in `stdapi_sys_process_execute: Operation failed: 1314`
- [ ] Executing `shell -F` results in an interactive shell.

This is the Meterpreter side of https://github.com/rapid7/metasploit-framework/pull/2554