Fixed: wi_noautostartmap was not sync safe

- Make wi_noautostartmap a userinfo cvar. This allows it to be
  communicated across the network and saved in demos. If any player has it
  set, then the intermission screen will not automatically advance to the
  next level.
Overload operator = for player_t

- This fixes crashes when quitting multiplayer games because the default
  byte-for-byte copy caused PredictionPlayerBackup and the console player
  to point to the exact same userinfo data and to both try and free it
  when they are deleted.
Switch true to LAF_ISMELEEATTACK inside A_Punch's call to P_LineAttack()
Add missing prantheses for A_CustomPunch's puffFlags calculation

- Fixed: Need parentheses for precedence when setting puffFlags in
  A_CustomPunch. Otherwise, it's completely broken.
GetSelectedSize() needs to check for a valid selection.

- With mouse navigation, there's no guarantee that there even is a
  selected item.
Do not enter testing mode if a valid mode is not selected.

- It doesn't make much sense to "test" the current mode if a non-video
  mode is selected in the menu, so don't.
- Fixed: Do not apply AVOIDMELEE logic when moving toward a goal
- Fixed: Thing_SetGoal could put an actor's target and goal out of sync.

  If an actor is already targeting a goal, and Thing_SetGoal is used on
  it, it would still be left targeting the old goal instead of the new
  one. This messed up checks in A_Chase for walking towards a goal vs a
  real target.