Fix: free user_name only after last use

Bug: user_name was used to construct the home directory path after being
freed.  Move the free(user_name) line so the string is freed only after
its last use.
Fix: set zone only when defined in mapped username

Bug: when map file contains just plain usernames,
globus_l_gfs_iRODS_start would set zone to NULL.

Fix the code calling strtok to check the second token (the zone) is not
NULL before using it.
Remove compile warnings: fix type of port.

The compiler was emitting these warnings:

globus_gridftp_server_iRODS.c: In function ‘globus_l_gfs_iRODS_start’:
globus_gridftp_server_iRODS.c:546: warning: cast to pointer from integer of different size
globus_gridftp_server_iRODS.c:566: warning: cast from pointer to integer of different size

Turns out globus_l_gfs_iRODS_handle_t was defining port as "char *"
while it was actually being used as int.

Fix: changed the type to int and removed the type casts no longer needed.