Issue 6365 - Multiple var declaration (AutoTupleDeclaration)

http://d.puremagic.com/issues/show_bug.cgi?id=6365

Based on #321, declare multiple variables at once, and initialize them in the corresponding tuple fields.

Syntax:
<pre>
TupleDeclaration:
    <a href="http://d-programming-language.org/declaration.html#StorageClasses">StorageClasses</a> <b>(</b> TupleTypeList <b>)</b> <b>=</b> <a href="http://d-programming-language.org/declaration.html#Initializer">Initializer</a> <b>;</b>
    <b>(</b> TupleTypeList <b>)</b> <b>=</b> <a href="http://d-programming-language.org/declaration.html#Initializer">Initializer</a> <b>;</b>

TupleTypeList:
    TupleType
    TupleType <b>,</b> TupleTypeList

TupleType:
    <a href="http://d-programming-language.org/declaration.html#StorageClasses">StorageClasses</a> <a href="http://d-programming-language.org/declaration.html#BasicType">BasicType</a> <a href="http://d-programming-language.org/declaration.html#Declarator">Declarator</a>
    <a href="http://d-programming-language.org/declaration.html#BasicType">BasicType</a> <a href="http://d-programming-language.org/declaration.html#Declarator">Declarator</a>
    <a href="http://d-programming-language.org/declaration.html#StorageClasses">StorageClasses</a> Identifier
    Identifier
</pre>

TupleTypeList is similar to <a href="http://d-programming-language.org/statement.html#ForeachTypeList">ForeachTypeList</a>.

If you want to write left parenthesis at beginning, you cannot omit the type or storage class of first variable.
<pre>
(x, y) = getCoordinate();  // NG, this is not multiple var declaration
(auto x, y) = getCoordinate();  // OK
(double x, y) = getCoordinate();  // OK, types are specified explicitly
</pre>