When linking with $ORIGIN rpaths, use the "-z origin" linker flag too

On FreeBSD, one needs use "-z origin" in order to enable resolution
of $ORIGIN in RPATH. Part of #7819.
Use -rpath flags on all Elf OSes, not just Linux

Patch from pgj; part of #7819.
Handle sign bit when generating veneer for ARM Thumb branch relocation
Fix mismatched visibility of assembler impls of StgRun

Based on a patch from PHO, in trac #7813.

We were previously declaring StgRun as a private symbol (in
rts/StgRun.h), but were actually defining it as a public one (in
rts/StgCRun.c). This caused a linkage problem with old binutils. See:
http://www.haskell.org/pipermail/ghc-devs/2013-April/000932.html