Make tools/stdlines operate on any files.
Simplify and improve calls to format preds.

library/string.parse_runtime.m:
    Replace the two previous two level scheme for representing format string
    components with a simpler one level scheme, which should avoid some
    memory allocations, and which should also make switches faster.

library/string.format.m:
    Conform to the change in string.parse_runtime.m.

compiler/parse_string_format.m:
    Replace the two previous two level scheme for representing format string
    components with a one level scheme, as in string.parse_runtime.m.

    Record the context of all the values to be printed.

compiler/format_call.m:
    Previously, when we replaced calls to format predicates with calls
    that formatted each value to be printed, we used term.context_init as
    the context of the replacement goals. We now use the contexts recorded for
    the value. Likewise, for the calls to predicates that concatenated the
    results together, we now use the context of the original call.
    This should give more useful information to anyone who uses the deep
    profiler on code that was transformed by format_call.m.

    Avoid unnecessary updates to the conj_maps, which should make
    the operation of format_call.m itself faster.

    Gather identified format call sites immediately even inside disjunctions,
    instead of creating a list of the sites inside each disjunct, and then
    appending it to the end of the list of sites so far. This should also
    improve the speed of format_call.m.

library/maybe.m:
    Add a maybe_errors type, which is like maybe_error, but in which the
    error case contains one OR MORE error indications.

NEWS:
    Mention the new maybe_errors type.