Convert layout code to use logical directions

Going towards CSS Writing Modes support, this converts the layout code to use flow-relative (logical) directions. There is two parts to this:

* Renaming all the things, largely with `sed`. Top, bottom, left, right, width, and height become bstart, bend, istart, iend, isize, and bsize. "i" and "b" are short for inline-direction and block-direction.
* Using the logical-space geometry primitives from #2790. This often requires knowing the current writing mode. There is therefore new `writing_mode` fields on `ComputedValues`, `BaseFlow`, and `Floats` structs. (See also #2795.)

There certainly a lot of bugs (including runtime failures) with vertical or mixed-writing modes documents, but there should be no regression in horizontal LTR documents.

The first commit also adds a `-e` / `--experimental` command-line flag, and disables parsing of the `direction`, `writing-mode` and `text-orientation` properties. This makes sure that everything is in horizontal LTR when the flag is not set.

r? @pcwalton