MapCollision::move: remove diag variable.

'diag' is computed from the small steps while the variable 'force_slide'
is computed from the passed parameters. 'diag' can only become true if
force_slide is already true. As diag is only ORed with forced_slide this
commit should not have any functional changes.
MapCollision::move: split into several functions

No functional changes intended.
MapCollision: make is_valid_tile private