Revert "hipe: Remove single function compilation"

This reverts commit 0aa3a8200025ae32c5aba11be5229fff19d03c7f.
We really need to have support for single function compilation in order to be
able to debug load and execution errors in ErLLVM.
Move some common code in hipe_pack_constants

All backends (e.g. arm, ppc, sparc, x86) share the same code for the following
functions:
  * find_const/2,
  * mk_data_relocs/2,
  * slim_sorted_exportmap/3, and
  * combine_label_maps/3

This commit moves those definitions (along with some helper functions) in
misc/hipe_pack_constants.erl. This is a structural change; no change in
semantics intented.
Add a BIF that only returns the atom ok

A call in llvm_fix_pinned_regs/0 is inserted in the beginning of LLVM unwind
blocks (i.e. code executed when an LLVM 'invoke' call triggers an exception)
in order to get the BP and SP registers right. This is needed because LLVM
exception handling doesn't provide the return value (that also contains the
values for these registers, as defined in the HiPE Calling Convention for
LLVM) on the 'landingpad's.
Change patching of x86 closures/constants

This commit fixes a bug in x86 that triggers a segfault on some tests.
Add llvm_debug_msg macro for debugging the loader
Add support for llvm unique symbols in hipe_gensym

This is used by the LLVM backend in order to generate unique names for
temporary SSA values and functions.
Extend RTL API to support the LLVM backend

* Extend the RTL 'call' instruction with a normalcontinuation field to host...
* Extend the 'rtl_var' definition to host liveness information needed for a
simple liveness analysis performed by the LLVM backend.
* Uncomment some function definitions (mostly simple accessors) that are
already there and are useful for the translation of RTL code to LLVM assembly.
Prepare for llvm backend: add to_llvm and other flags
Add llvm backend + loader support