Speed up pred_info's setter predicates a bit.

compiler/hlds_pred.m:
    If the new value of a field of pred_info is likely to be bit-identical
    to the old value, then test the old and new bits for equality in the
    setter, and if they are the same, do not allocate a new pred_info
    structure that is guaranteed to be the same as the old one.

    By avoiding unnecessary memory turnover, this speeds up the compiler a bit,
    though I cannot nail down by how much. I measured it several times, with
    the results being no change, a speedup of 1%, and a speedup of 2%.

    Remove the unused setter predicate for the attributes field.

    Rename some access predicates to pred_infos to better reflect what they do.

    Add a distinguishing prefix to the fields of pred_infos.

compiler/*.m:
    Conform to the changes above.
Do not allow unterminated octal escapes in string literals.

library/lexer.m:
	Fix an old XXX: do not allow unterminated octal escapes in string
	literals; we haven't needed to preserve bug-for-bug compatibility
	with NU-Prolog for a very long time.

tests/hard_coded/special_char.m:
	Terminate octal escapes.

tests/invalid/Mmakefile:
tests/invalid/unterminated_octal_escape.{m,err_exp}:
	Check for an error if an unterminated octal escape is encountered.