Expand macro section on repetition operators and syntax.

This is to give more details on how macro repetition works and to address https://github.com/japaric/rust-by-example/issues/110#issuecomment-48104754.
Not necessarily.

I think the best way to understand these patterns is to read them:

`(($x:expr),+)` reads as `expr` separated by commas: `(1, 2      ,    3)` (spaces are ignored)
`(($x:ident) and +)` reads as `ident` separated by ands: `(foo and bar and baz)`

Note that the separator must be between the "elements"

`(($x:expr),+)` **won't** match `(1, 2, 3,)` (note the trailing comma)
To deal with trailing commas, one must use this pattern: `(($x:expr),+,)` (note the comma after the `+`)