Link to contract programming page from functions spec.

So that readers will understand what the in and out blocks are for.

Fixes: https://issues.dlang.org/show_bug.cgi?id=13328
fix Issue 10232 - AndExpression grammar is not correct
fix AndAndExpression grammar
fix Issue 13451 - Lambda syntax with explicit return type not documented
Merge pull request #654 from quickfur/issue13328

Link to contract programming page from functions spec.
Decompose Decl into FuncDeclaration and VarDeclarations

FuncDeclarator is a dup of Declarator, and FuncDeclaratorSuffix is a dup of DeclaratorSuffix

And we need to keep function type aliasing with the old style syntax.
fix Issue 12579 - DMD rejects valid function literal

Remove FuncDeclaratorSuffixes to disallow zero, two or more parameter lists

And disallow mixing C-style suffix in function declaration, as follows:

  void foo[](int a);
fix Issue 10235 - Grammar does not contain a rule for function declarations

Move FuncDeclaration and related non terminal symbols into function.dd

Conflicts:
	declaration.dd
	grammar.dd
fix Issue 13523 - Auto function declaration does not match any grammar rule
Reorder non terminal symbols in declaration.dd
fix hyperlink to contracts.html
Merge pull request #656 from 9rnsr/fix13451

Issue 13451 - Lambda syntax with explicit return type not documented
Merge pull request #659 from 9rnsr/fix10232

Issue 10232 - AndExpression grammar is not correct
Merge pull request #660 from 9rnsr/fix_function

Fix grammar around function declaration
Divide Declarator and AltDeclarator to separate C-style syntax
Remove C-style syntax from regular Declaration grammar

Conflicts:
	declaration.dd
Now Declarator2 is equivalent with AltDeclarator

Conflicts:
	declaration.dd
Disallow optional template parameters with C-style syntax