Return unescaped values from ParseFormat

This ensures that callsites need not care about any escaping that may
have existed in the format; they instead recieve the completely parsed
values.
Handle single quotes correctly in format strings

Previously, BuildFormatString used a naive/buggy format parser, e.g.  it
can't handle commas in fields, and misparsed strings like "__Foo__ or
__Bar__" and "__CF.{Some Thing Here}__".  It has now been replaced by
our standard ParseFormat component.

Additionally, ensure that the values returned from ParseFormat are the
fully parsed values, which includes performing all unescaping.  This
simplifies round-tripping.
Merge branch '4.0/escape-quotes-in-search-format' into 4.0-trunk