Move pointer_equals/2 into the private_builtin module.

library/version_hash_table.m:
library/private_builtin.m:
    Move pointer_equals/2 as above.

    Rename pointer_equals to pointer_equal.

library/private_builtin.m:
    Adjust a comment to say that this module also contains predicates with
    normal definitions.  That is, they're built into the language but not
    built into the compiler.
Rename version_hash_table.equals/2

Rename version_hash_table.equals/2 to equal/2 as this name is more
consistent with the rest of the standard library.  Normally when renaming
predicates and functions in the standard library we deprecate them.
However, version_hash_table.equals/2 hasn't existed for very long and so
very little code depends on it's name.

library/version_hash_table.m:
    As above.
Address review comments

Thanks Peter for your corrections.

library/private_builtin.m:
    As above.
Implement map.equal/2

The unification operation on 2-3-4 trees tests if they are structurally
equal.  They might also be considered equal if their sets of key-value pairs
are equivalent.  I've created an equal/2 predicate in the tree234 and
map modules in the standard library to test this.

library/tree234.m:
    Implement a predicate to test for tree234 equivalence.

library/map.m:
    Forward map.equal/2 to tree234.equal/2.

NEWS:
    Announce this change in the news file.

tests/general/map_equal.m:
tests/general/map_equal.exp:
    Add test case for map.equal/2

tests/general/Mmakefile:
    Include the new test case.
Allow the target architecture to be set in the environment.

scripts/Mercury.config.in:
scripts/Mercury.config.boostrap.in:
	Add the environment variable MERCURY_TARGET_ARCH, which allows
	the compiler's target architecture to be overridden in the
	environment.

compiler/options.m:
	Add the option --target-arch as a synonym (and eventually, replacement)
	for the --fullarch option.
Merge branch 'version-13_05-branch'