Simplifications to how the grammar is presented?

(from [this issue](https://github.com/H2CO3/Sparkling/issues/16))

I'm still not sure about a couple of things:

 - where 0's are allowed in floating point radixes; are these good or bad?

        0.1
        00.1
        04.1
        3.0
        3.00
        3.01
        3.001
        3.10

 - `if` statements:

   - original: `if-statement = 'if' expression block-statement [ 'else' block-statement | if-statement ]`
   - my translation`( 'if'  expression  block-statement )(+)  ( 'else'  block-statement )(?)`

   I think I got the grouping wrong in the else-portion -- should the original be interpreted as `[ 'else' ( block-statement | if-statement ) ]`?

If so, then I would translate it as:

    if-statement  =  if-branch  ( 'else'  if-branch )(*)  ( 'else'  block-statement )(?)

    if-branch       =  'if'  expression  block-statement