Support specifying directory of servers created by objserverfactory.

This allows specifying a working directory for PBS, GridEngine, LocalAllocator, and analysis_server servers via the working_directory key. Arbitrary directories may be specified if allow_shell is True, otherwise they are relative to the factory.

Also updated ExternalCode and filexfer to optionally avoid setting permissions to reduce network transactions.