magit-get-top-dir: return nil if FILE does not exist
magit-init: sanitize

Clearly separate the interactive and the non-interactive case by moving
all the questions this function might ask inside `interactive'.  This
function isn't intended for non-interactive use, but when it is used
that way, then the directory is now always (re-)initialized - no
questions asked.

Interactively, when the chosen directory doesn't exist yet, then don't
ask the user whether she really wants to create that directory.  She
just selected that directory and creating a directory is usually part
of creating a repository there.  Asking again is just annoying.
magit-test.el: remove magit-init test

Now that `magit-init' simply calls `git init DIRECTORY' when called
non-interactively, this test is rather pointless.
magit-tests.el: remove magit-blame-mode test

There are hundreds of commands, why test just this particular one?
magit-tests--modify-file: cosmetics
magit-tests--should-have-section: new function

Add new function `magit-tests--should-have-section' replacing
`magit-tests--should-have-item-title'.  This is mostly a semantic
cleanup and doesn't change the fact that this function is very
limited and will likely have to be replaced again when we add
new tests.
magit-{git-dir,get-top-dir}: make sure file is non-nil

Before using file functions on "the directory" , make sure it
actually is non-nil.  If we are not inside a repository it is nil.
These functions expect a string, when the are confronted with nil
they raise an error.