doc/ref/spec.md: perpare for allowing a.4.f
doc/ref/spec.md: perpare for allowing a.4.f

- Update the comma elision rule to reflect the addition
  of new keywords and other syntax.
- Also limit the places where floating points are allowed.
- Remove integer division operators and reintroduce as
  builtins
- This also makes the first step to unify integral and
  floating point numbers into a single type by unifying
  the section on literals.

This allows integer numbers to be used as selectors, as in
     a.b.3
instead of
     a.b[3]

The only ambiguity that would remain is in

	if .5 == foo {}

Which would tokenize as `if`, `.`, `5`, `==`, ...
But that seems worth the potential gain. This will be
mitigated if we let `cue fmt` rewrite `.5` to `0.5`,
not unlike popular spreadsheets do.

The integer division operators also have to be removed
to make this work. In this CL they are redefined as
builtins. This seems far nicer anyway and removes some
complexity from a feature that is otherwise not used
much. Defining them as builtins also seems to improve
discoverablity / documentation.

Allowing `a.5` results in a far more regular syntax.

The main drawback of this syntax is is that it will not
be possible to elide commas in lists. This is already
not allowed.

Adding this restriction will still allows to either allow
`[ a .5 b ]` or `a.b.5`, or neither down the road.
This change makes it clear, however, that allowing
numbers as selectors can be achieved without
disallowing `.5` to be a valid floating point.

Change-Id: Iabd8f7fd88a3e5ec602aa1f110f75aa5cffe3256
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/7726
Reviewed-by: Marcel van Lohuizen <a22d082192f3ccf984644a4f482781f4c2d65180@golang.org>

cuelang/cue