Fix #6275

The approach is as follows. On MCJIT with LLVM trunk we get proper line numbers.
On 3.3 we get proper line numbers on Linux (and probably Windows), but on Mac,
you have to use a patched version of LLVM. If you don't use the patched version
of LLVM you'll still get the function names but no line numbers.
Nasty LLVM 3.3 support
Linux support
On Linux mmap a second copy of the shared library

I was originally planning to just use the one we have already in memory,
but Linux actually makes section headers execute only, so I couldn't even look
at that without too much effort. Secondly, I'm not sure if the debug info is even
being mapped into memory at that address since it's usually not needed and I don't
think any other library could access it there. Instead, I'm just mmaping a second
copy. This of course slightly adds to the page table pressure, but other than that it
shouldn't have any other overhead and should be no worse than having separate
debug info in any case.
Save objectfile size and use it to abort the search early

Conflicts:
	src/debuginfo.cpp
LLVM 3.5 build fixes

In 3.5 the LLVM MachO headers conflict with some standard system headers which get included via julia.h

Conflicts:
	Make.inc
WIP: Windows support
comment typo
Windows support once exception handling actually works
Fix wrong replacement for strncpy and small typo
Small LLVM3.5 API change
Small linux fix
fix #7169 (replace zeta function with new implementation)
make hurwitz zeta(s,z) more Julian: require complex inputs to get complex outputs
Added support, tests for unix+windows symlinks via libuv

* For Windows, support is only available on Vista and later, so...
* Also added macros for testing version of Windows
Merge pull request #7160 from JuliaLang/kf/6275

WIP: Fix #6275
Merge pull request #4396 from JuliaLang/kms/libuv_symlink

RFC: Added support, tests for unix+windows symlinks via libuv
fix eta(big(1.0))
fix #7227
cross-reference #7228