clang-format: Revamp function declaration/definition indentation.

Key changes:
- Correctly (well ...) distinguish function declarations and variable
  declarations with ()-initialization.
- Don't indent when breaking function declarations/definitions after the
  return type.
- Indent variable declarations and typedefs when breaking after the
  type.

This fixes llvm.org/PR17999.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@212591 91177308-0d34-0410-b5e6-96231b3b80d8