Remove syntax_tools and runtime_tools from app file

The former is used by the dictionary compiler, the latter by some
unfinished code in diameter_dbg. None of the corresponding modules are
included in the app file since they typically aren't needed/wanted on a
target system.
Check for required LLVM version or issue error

This checks that a required LLVM version (i.e. 3.4 or greater) appears in $PATH
when 'to_llvm' flag is used; in case of failure, abort compilation with an
error.
Fix counting of arguments of closures

Do not rely on MFA name for the arity of functions, since closures have
an extra argument. Instead, just use the length of the arguments list.
Fix frame size adjustment of stack descriptors

In case of function calls with arguments that are passed to the stack,
the frame size of corresponding stack descriptors needs to be reduced by
the number of stack arguments. This commit fixes a bug in this
adjustment which was caused by an incorrect check.
Generate runtime_dependencies in app file

To avoid having to specify applications more than once.
Add app suite test for app file runtime_dependencies

In particular, that modules listed in the 'modules' tuple only call
modules in other applications listed in the 'runtime_dependencies'
tuple.
Simplify xref tests in app suite

By examining which modules *use* runtime and compiler modules instead of
which modules compiler modules call. Note that the semantics are changed
somewhat: we will now fail if diameter modules are called from an
application which diameter.app lists as a start dependency, which wasn't
the case previously.
Support for ignoring apps in runtime_dependencies test
Merge branch 'rickard/runtime_dependencies_test'

* rickard/runtime_dependencies_test:
  Support for ignoring apps in runtime_dependencies test
Merge branch 'anders/diameter/17.0_release/OTP-11825'

* anders/diameter/17.0_release/OTP-11825:
  Simplify xref tests in app suite
  Add app suite test for app file runtime_dependencies
  Generate runtime_dependencies in app file
  Remove syntax_tools and runtime_tools from app file
Merge branch 'yiannist/erllvm-fixes'

* yiannist/erllvm-fixes:
  Fix frame size adjustment of stack descriptors
  Fix counting of arguments of closures
  Check for required LLVM version or issue error