Do not free port/state

Or memory corruption could happen. Fixes http://issue.cc/r3/2171:

The following code crashes interpreter when it's typed in from the console (i.e. not saving as a script and run from there).

The problem is that:
1. when it first opens the port, an lookup event is emitted and saved in system port
the event struct is like:
typedef struct rebol_event {
    u8 type;        // event id (mouse-move, mouse-button, etc)
    u8 flags;        // special flags
    u8 win;        // window id
    u8 model;        // port, object, gui, callback
    u32 data;        // an x/y position or keycode (raw/decoded)
    union {
        REBREQ *req;    // request (for device events)
        void *ser;        // port or object
    };
} REBEVT;

and the memory "req" refers to comes from port/state (see Use_Port_State in core/c-port.c).

2. when it closes the port the, Free_Port_State is called (see core/p-net.c or p-file.c), which changes port/state to "none". So, from now on, the only reference to "req" comes from the lookup event, which has no way to mark it being used.

3. "recycle" frees memory occupied by "req"

4. the old memory occupied by "req" is reused.

5. "recycle" reaches "req" from the event queue, and tries to mark req->port. As the memory is overwritten, it crashes.

>>repeat n 2 [try [close open open join tcp://localhost: n]]
>>recycle
>>none? file-type? %abc.234
>>recycle
Bump version for 3.1 beta