Minor correction of xml structure to conform to the DTD
erts: Extend erl_driver interface with lock names

Lock and thread names are already a feature in the driver interface.
This extension will let developers read these names. Eases debugging.
erts: Speed up valgrind with asynch threads

by only letting it run on one core. Valgrind only let one thread
at a time execute anyway.
Fix variable usage tracking in erl_lint

When analyzing complex expressions (i.e. comprehensions, cases, tries,
ifs and receives), erl_lint does not forget about old unused variables
when returning the updated variable table. This causes a bug where old
unused variables are not recorded as such:

t(X, Y) ->
  #r{a=[ K || K <- Y ],b=[ K || K <- Y ]}.

As erl_lint uses vtmerge_pat/2 to merge the results of the analysis of
the two list comprehensions, X is marked as used and the warning is not
emitted.

The function vtmerge_pat/2 is used instead of the similar vtmerge/2
which does not mark multiple occurrences of a variable as usage to
handle cases like the following one:

t(X, Y) ->
  #r{a=A=X,b=A=Y}.

Other simpler expressions like conses, tuples and external fun
references do not correctly follow this behaviour, e.g. A is not marked
as used in the following code:

t(X, Y) ->
  {A=X,A=Y}.

This commit fixes both issues and makes erl_lint not return old unused
variables in updated tables and makes all compound expressions use
vtmerge_pat/2.

Reported-by: Anders Ramsell
Fix unsafe variable tracking in try expressions

Variables used in the body of a try expression were marked as unsafe
*and* used, which makes no sense as an unsafe variable can't be used.

Function vtsubtract/2 is used to forget usage of such unsafe variables.

Reported-by: Paul Davis
Fix variable usage tracking in some record errors

When reporting a field redefinition in a record, erl_lint can forget
about some old unused variables.

f() -> X = 1, #r{a=foo,a=bar,a=qux}.
Updated primary bootstrap
Cross compilation is now a supported feature
Corrections so that the documentation confirms to the DTD
Fix EV_* macros and functions signedness flaws
Remove object files when cleaning

Otherwise something like this will fail:
./otp_build setup --enable-m32-build
make clean
./otp_build setup --enable-m64-build
Fix some compiler warnings
Fix broken cpu_sup:nprocs and others on Solaris 64-bit

The correct kstat datatype for nproc & avenrun_* is ui32, not
ulong. Under 64-bit OTP builds garbage was returned because the wrong
datatype was used.

This patch correcs the datatype. It also adds an additional check
in the test case for a slightly less insane return value.
[snmp/agent] Improved loading and unload of MIBs

Improved the documentation of the loading and unloading
of MIBs (plural). also added functions for loading and
unloading a single mib.

OTP-11216
[snmp/agent] Fixed doc broken link to gen_server
erts: Document erl_driver interface lock names
Cleanup of the file

Consisting of three items:
 - Eliminate uses of is_subtype/2 in specs
 - Change module-local void functions to return 'ok' instead of []
 - Make sure there are no dialyzer warnings with --Wunmatched_returns
Ignore odbc cores
Fix broken spawn_opt

The option was morphed into a boolean() and then ignored.
+e should be passed through erlexec