For every move and move-assignment constructor, do the following: 1. Make it default if possible 2. Add or delete where appropriate 3. Check for move-onto-self 4. Apply `std::move` where needed Also fix problematic moves in `player_h`