Improve the -u switch (closes #1220)

This bug implements the suggestions in [#1220](http://trac.rephial.org/ticket/1220) for making `-u` work better.  Along the way, refactor away process_player_name() and op_ptr->base_name, and introduce savefile_set_name().  These changes remove a layer of indirection in the code and make it easier to work out where the savefile filename is being set.