SERVER-7404 Link to posix_fadvise at runtime for Solaris

For the Solaris/SmartOS build, do not make direct calls to posix_fadvise,
which is present in Solaris 11 but not in Solaris 10.  Instead, see if
it is available in a loaded library (which will be libc.so.1) at runtime
and either call it or call an emulation.  The emulation is a no-op.

Conflicts:
	src/mongo/db/extsort.cpp
	src/mongo/tools/tool.cpp
	src/mongo/util/file_allocator.cpp
	src/mongo/util/logfile.cpp
SERVER-7080 Link to backtrace, backtrace_symbols and backtrace_symbols_fd at runtime

Do not make direct calls to backtrace, backtrace_symbols or backtrace_symbols_fd,
which are present in Solaris 11 but not in Solaris 10.  Instead, see if they are
available in a loaded library (which will be libc.so.1) at runtime and either
call them or call an emulation.
SERVER-7080 Add code to emulate backtrace()

backtrace() fills a buffer provided by the caller with addresses
constituting a stack trace.  This emulation allows the display of
addresses in Solaris 10, which can be used with addr2line to see
code locations.
SERVER-7080 Emulate backtrace_symbols() and backtrace_symbols_fd() on Solaris 10

backtrace_symbols() returns a block of strings, each containing a
symbolic representation of a location in a stack trace; i.e. a line
of a stack trace.  backtrace_symbols() is allowed to (and must)
allocate memory and cannot be used in a signal handler.  Add code to
produce lines on Solaris 10 that are similar to those produced by
backtrace_symbols() on Solaris 11.

backtrace_symbols_fd() writes a stack trace to a specified file
descriptor.  backtrace_symbols_fd() must not allocate memory and may
be safely used in a signal handler.  Add code to produce output on
Solaris 10 that is similar to that produced by backtrace_symbols_fd()
on Solaris 11.