build: add option for reducing exports

Enabled automatically if boost >= 1.49.
See: https://svn.boost.org/trac/boost/ticket/2309

Also, check for a default visibility attribute, so that we can mark future
api functions correctly.
Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope.

This corrects a bug where an exception thrown reading from the database causes the cursor to
be left open, which causes an assertion error to occur when the database is deleted (around
line 938 of init.cpp).
Merge pull request #4663

4975ae1 build: add option for reducing exports (Cory Fields)
devtools: Exclude default exports from symbol-checker script

See discussion in #4663.
Merge pull request #4656

5cbda4f Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope. (Ross Nicoll)
Merge remote-tracking branch 'bitcoin/master'

Conflicts merged in:
	src/Makefile.am
	src/Makefile.qt.include