Abstract the block version.

Wrap CBlockHeader::nVersion into a new class (CBlockVersion).  This
allows to take care of interpreting the field into a base version,
auxpow flag and the chain ID.
Accept auxpow as PoW verification.
Add unit tests for auxpow verification.
Fix after rebase.
Rename bitcoin to namecoin for CLI programs.

Update the autotools system to rename bitcoind to namecoind and the same
for bitcoin-cli and bitcoin-tx.
Set Namecoin's chain parameters.
Strip name prefixes in Solver.

Implement basic name script parsing and use it to strip name prefixes in
the Solver() routine.
Disable some failing tests.

Some tests have to be disabled, since they rely on the (changed) chain
parameters.  They can probably be re-enabled with due diligence, but
disable them for now.
Implement basic tests for name scripts.
Implement name database into CCoinsView.
Implement checking of name transactions.

Check Namecoin protocol rules for transactions.  The name database is
not yet updated as it should be, and there's no unit test for the checks
yet.
Write unit tests for CheckNameTransaction.
Record name updates in the chain state.

This patch does not only *validate* name transactions, but also record
their changes made in the CCoinsView (aka chain state).  This makes the
code sync again for the first few thousand blocks.
Implement undo support for name operations.

Record changes made to the name database in the block undo data, so that
we can correctly disconnect blocks again.
Unit tests for name updates and name undo data.
Add name_show RPC call.
Update regtest framework.

Update configuration for the regtest framework as well as all rpc-test
scripts.  No new tests, though.
Implement name_new.
Add check for maximal name length to name_new.

Fail name_new if the provided name is longer than the maximum allowed
length of a name.
Enable name script decoding for ScriptPubKeyToJSON.