rename magit-read-top-dir to magit-read-repository
magit-read-repository: rename argument

Rename `magit-read-repository's argument DIR to the more descriptive
READ-DIRECTORY-NAME and make it optional, and remove the incomplete
doc-string.
magit-{status,init}: fix and improve

When `magit-init' or `magit-status' is used to create a new repository,
then directory chosen by the user likely does not exist.  In that case
we cannot use `magit-get-top-dir' because that only works in existing
directories.  Create `magit-toplevel-safe' to use when it is unknown
whether the directory in question exists.

In `magit-status' cleanly separate the "initialize" special case from
the rest, previously it was not possible to create a new repository
inside another using this command.  As a result this command is no
longer suitable for non-interactive use and `magit-status-internal'
has to be factored out.

In `magit-init' create its parent directory before creating the new
repository.  Refactor some more.

Improve the doc-string.
Merge branch 'n/fix-init' into next