pull: respect rebase.autostash

A rebasing pull currently does not use the rebase.autostash feature
added to by 5879477 (rebase: implement --[no-]autostash and
rebase.autostash, 2013-05-12).  In the case of a dirty worktree or
index, it unconditionally calls require_clean_worktree() early,
resulting in:

  # dirty worktree or index
  $ git pull
  Cannot pull with rebase: Your index contains uncommitted changes.
  Please commit or stash them.

Allow a rebasing pull to be operated on a dirty worktree by reading
rebase.autostash and calling require_clean_worktree() only if it is not
set.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
pull: clarify the large && { ... } form

Remove the large && { ... } form, as the block can be confused with a
function block.  Use a simple if-condition instead.  No functional
changes.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>