Decouple CChain from mapBlockIndex
Move CBlockIndex, CChain and related code out of main
depends: add the debug/release concept to depends
depends: add debug/release flags for linux/osx/win

Linux and mingw enable libstdc++ debugging for extra runtime checks. OSX
doesn't play nice, so don't enable it there.
depends: make sure openssl sees cppflags
depends: boost: build for debug or release as requested

Also hook up cppflags there, which was missing before.
depends: teach qt to honor debug/release

This means it also needs to honor our flags, so patch them in as necessary.
depends: give miniupnpc cppflags
depends: make LDFLAGS act like the other flags
depends: add docs for debug
depends: disable reduced exports for debug builds

Some debug options may not be compatible.
tests: don't split an empty string
script: don't read past the end
travis: use debug for one build

For the all-off build, enable the wallet and debug. This ensures that debug
options will catch wallet problems as well.

In order to make sure the no-wallet path is still tested, disable the wallet
in the other x86_64 build.
LLu is standard, but not portable. use ULL
Merge pull request #4796

e8b5f0d Move CBlockIndex, CChain and related code out of main (jtimon)
6db83db Decouple CChain from mapBlockIndex (jtimon)
Merge pull request #4999

775b7b8 LLu is standard, but not portable. use ULL (sinetek)
Merge pull request #4970

93e24dd travis: use debug for one build (Cory Fields)
be6d87a script: don't read past the end (Cory Fields)
a94496f tests: don't split an empty string (Cory Fields)
00522cd depends: disable reduced exports for debug builds (Cory Fields)
1f7fff2 depends: add docs for debug (Cory Fields)
dc66ff5 depends: make LDFLAGS act like the other flags (Cory Fields)
b1efba8 depends: give miniupnpc cppflags (Cory Fields)
1d154db depends: teach qt to honor debug/release (Cory Fields)
3b63df5 depends: boost: build for debug or release as requested (Cory Fields)
7e99df7 depends: make sure openssl sees cppflags (Cory Fields)
f397304 depends: add debug/release flags for linux/osx/win (Cory Fields)
2027ad3 depends: add the debug/release concept to depends (Cory Fields)
convert CBufferedFile into a non-refcounted RAII wrapper

- it now takes over the passed file descriptor and calls fclose() in the
  destructor
- this fixes a leak in LoadExternalBlockFile(), where an exception could
  cause the file to not getting closed
- also disallow copies (like recently added for CAutoFile)
update CAutoFile destructor to match CBufferdFile destructor