Introduce script verification flags

These flags select features to be enabled/disabled during script
evaluation/checking, instead of several booleans passed along.
Currently these flags are defined:
* SCRIPT_VERIFY_P2SH: enable BIP16-style subscript evaluation
* SCRIPT_VERIFY_STRICTENC: enforce strict adherence to pubkey/sig encoding standards.
Merge pull request #2008 from sipa/scriptflags

Introduce script verification flags
Split off CBlockHeader from CBlock

Cleaner and removes the need for the application-specific flags in
serialize.h.
Merge pull request #2010 from Diapolo/bind_unsigned

make enum and parameter used in Bind() unsigned
RPC: Forbid RPC username == RPC password

Added security measure.
Add new RPC "lockunspent", to prevent spending of selected outputs
and associated RPC "listlockunspent".

This is a memory-only filter, which is empty when a node restarts.
Merge pull request #2012 from luke-jr/invblk_errs

Print error for coinbase-pays-too-much case of ConnectBlock failing
Merge pull request #2005 from Diapolo/fixes_main

some small fixes for main.cpp/.h
Merge pull request #1987 from jgarzik/no-pw-match

RPC: Forbid RPC username == RPC password
Merge pull request #1945 from centromere/leveldb_fix

Fixed compile error on FreeBSD 9.
Merge pull request #1670 from luke-jr/blksubstr

Use full block hash as unique identifier in debug.log
Merge pull request #1767 from Diapolo/RPCCon_clear_history

clear history when using clear button in RPC console
ensure we use our format macros to avoid compilation warnings

- fixes 2 warnings I observed while compiling on Windows with MinGW
Merge pull request #2018 from Diapolo/fix_warning

ensure we use our format macros to avoid compilation warnings
Merge pull request #2009 from sipa/fixmove

Prevent RPC 'move' from deadlocking
update bitcoinstrings.cpp and bitcoin_en.ts
Merge pull request #2019 from Diapolo/bitcoinstrings_upd

update bitcoinstrings.cpp and bitcoin_en.ts
ConnectBlock(): fix error() format to be unsigned

- I introduced the wrong format macro with my former patch (#2018), this
  needs to be signed not unsigned (thanks Luke-Jr)
Merge pull request #2022 from Diapolo/fix_#2018

fix pull #2018
Bitcoin-Qt: fix crash on Windows caused by CDBEnv::EnvShutdown()

- can be triggerd by just adding -proxy=crashme with 0.7.1
- crash occured, when AppInit2() was left with return false; after the
  first call to bitdb.open() (Step 6 in init)
- this is caused by GetDataDir() or .string() in CDBEnv::EnvShutdown()
  called via the bitdb global destructor
- init fDbEnvInit and fMockDb to false in CDBEnv::CDBEnv()