Revert temporarily changes related to InsetSeparator

This is to avoid many conflicts with the str-metrics branch.
Cleanup TextMetrics::rowBreakPoint.

Collect properly all strings to compute string metrics

Some changes with respect to existing code
 - end of paragraph font is now the one of the text
 - words longer than a line are not broken anymore. I think this is not useful  if we have horizontal scrollbar

Other than that, the code is still compatible with rowWidth and friends.
Change TextMetrics::rowHeight to setRowHeight

This new function takes a row as parameter.

Also, add direct access to Row::dim_
Add a readme file describing the state of the branch
Implement real string width computation

Important features:
* widths are cached in a map
* old behavior is still used when lyxrc.force_paint_single_char is true.
Store in the Row object the list of elements it contains

* Row now contains a vector of Elements
* replace Row::dump by a proper << operator
* the width is updated as elements are added
* breakRow is reimplmented to use this infrastructure
Implement proper handling of RtL in Rows

Now the row elements are sorted according to RtL/LtR.

Some additional cleanup.
Small Inset isXXX methods cleanup

 * rename isStretchableSpace to isHfill
 * inline a trivial method
 * remove InsetIPAMacro::isLineSeparator, which has the same value as default.
Convert cursorX() and computeRowMetrics() to the new scheme

* convert cursorX to new scheme; old computation is still there for the sake of comparison.

* use Row to compute separator width in computeRowMetrics; again, the old code is retained for now.

* Get rid of rowWidth()
Get rid of ugly font metrics workarounds.

Now we have proper ligatures and kerning on screen...
Re-implement getColumNearX using row elements

The code is now so much shorter that it is scary... Expect that
further changes will be necessary

Cursor boundary is not handled yet.
Handle boundary in getColumnNearX (and more)

Use proper font everywhere for end-of-par marker

Fix getColumnNearX for RTL text and for centered/right-justified paragraphs.

Let computeRowMetrics update the row width.
Fix line breaking algorithm

Break words longer than the screen width. The code is more complicated
than I would like, but I have no better idea right now.

Implement properly the notion of a row broken by a display inset. This is useful in different places.

Also fix a bug with last line of a paragraph spotted by Kornel.
Fix getColumnNearX for nested insets

The horizontal position of the inset was not taken in account.
The rounding is not always the same as with the old code, but this
is not really important.

Additional changes:

 * improve debug output of rows

 * remove Bidi& argument of the RowPainter constructor, since it is always
   an empty Bifi that is passed. This means that the Bidi class is not
   used at all any more in TextMetrics.cpp. The only remaining user is
   RowPainter.
New reverseRTL implementation

The old version was a bit complicated and wrong for RtL paragraphs
containing LtR text. THe new one is clearer.
Some fixes related to RTL text

 * fix handling of boundary situations in Row::Elements::x2pos;

 * fix handling of boundary situations in TextMetrics::getColumnNearX;

 * make sure to always use Font::isVisibleRightToLeft instead of Font::isRightToLeft;

 * Improve debug messages.
More fixes to cursorX

In Row::Element::pos2x, handle the boundaries in a cleaner way.
Small fixes to cursor positioning.

Two small fixed to Row::Element::x2pos:
* fix position for elements that are not strings
* make rounding match the old code
Change getColumnNearX to getPosNearX

The semantics was bad: the old implementation would return pos - row.pos(), and then all user of the function had to re-add row.pos().
Update README and do a small code cleanup