run section movement hook when using line-wise fallback

Rename `magit-goto-section-hook' to `magit-section-movement-hook'.
Rename `magit-goto-section' to `magit-section-goto', and instead of a
section also accept a number as argument.  If it's a number then it
always is either 1 or -1, move by that many lines in that direction,
using `forward-line'.

The movement commands which call `magit-section-goto' previously only
called it (under its old name) when an appropriate section existed in
the desired direction.  When that was not the case, then they just used
`forward-line' directly, which prevented the movement hook from running.
magit-section-goto-successor: more explicit root section check
magit-section-goto-successor: only use magit-goto-char once

When returning to the start of the successor section after detecting
that moving by the line offset would move us out of the successor,
just use `goto-char'.