Qt: allow "emergency" shutdown during startup

- allows closing our splash screen to abort startup
Refactor -alertnotify code

Refactor common -alertnotify code into static CAlert::Notify method.
Trigger -alertnotify if network is upgrading without you

This adds a -regetest-only undocumented (for regression testing only)
command-line option -blockversion=N to set block.nVersion.

Adds to the "has the rest of the network upgraded to a
block.nVersion we don't understand" code so it calls
-alertnotify when 51 of the last 100 blocks are up-version.
But it only alerts once, not with every subsequent new, upversion
block.

And adds a forknotify.py regression test to make sure it works.

Tested using forknotify.py:

Before adding CAlert::Notify, get:
Assertion failed: -alertnotify did not warn of up-version blocks

Before adding code to only alert once:
Assertion failed: -alertnotify excessive warning of up-version blocks

After final code in this pull:
Tests successful
Merge pull request #5059

dbca89b Trigger -alertnotify if network is upgrading without you (Gavin Andresen)
e01a793 Refactor -alertnotify code (Gavin Andresen)

Signed-off-by: Gavin Andresen <gavinandresen@gmail.com>
Merge pull request #5032

4bd1185 Qt: allow "emergency" shutdown during startup (Philip Kaufmann)
Travis: Descriptive build names
Merge pull request #5072

caecb42 Travis: Descriptive build names (Luke Dashjr)
qt: add network-specific style object

Mainly cleanups: Gets rid of isTestNet everywhere, by keeping track
of network-specific theming in a central place.

Also makes GUI no longer dependent on the network ID enumeration, which
alleviates concerns about #4802.
Move checkpoint data selection to chainparams
Add fTestnetToBeDeprecatedFieldRPC to CChainParams
Remove CChainParams::NetworkID()
Merge pull request #4802

6fd546d Remove CChainParams::NetworkID() (jtimon)
cc97210 Add fTestnetToBeDeprecatedFieldRPC to CChainParams (jtimon)
e11712d Move checkpoint data selection to chainparams (jtimon)
6de50c3 qt: add network-specific style object (Wladimir J. van der Laan)
script: move CScriptID to standard.h and add a ctor for creating them from CScripts

This allows for a reversal of the current behavior.

This:
CScript foo;
CScriptID bar(foo.GetID());

Becomes:
CScript foo;
CScriptID bar(foo);

This way, CScript is no longer dependent on CScriptID or Hash();
script: remove all uses of CScript::GetID()
script: remove CScriptID::GetID()
script: add base class for serializing core structures for scripts
script: use CScriptBinaryData for all core structures that are added to scripts
script: remove old methods of writing core structures
script: move ToString and ValueString out of the header
script: add a slew of includes all around before removing some from script.h

Lots of files ended up with indirect includes from script.h.