Simplify the definition of custom .{} operators

This commits modify the Bigarray syntax extension in order to
facilitate the use of custom .{} operators. The compatibility with
the existing Bigarray syntax has been preserved as much as possible.
However, this commit will break code which use the Bigarray .{}
syntax without opening the Bigarray module first!

Like the previous commit, this commit modifies the parser
to desugar bigarray1.{index} to ( .{} ) bigarray1 index.
Following the bigarray syntax, the index operator used
in the desugaring changes if the index is a n-tuple:
1-tuple => .{}
2-tuple => .{,}
3-tuple => .{,,}
4 and more tuples => .{,..,}

The bigarray modules has been modified to use this new index
operators. Note that this means that these index operators
are not anymore accessible without opening the bigarray module.
( An option to avoid this problem would be to introduce a compiler
switch. )