Update translations from Transifex (100% coverage for Finnish and Chinese (China)
Apply MIT license to md2k7 art

[21:48:14] <md2k7> feel free to make it MIT if you like
Merge pull request #1802 from luke-jr/bugfix_ts

Update translations from Transifex (100% coverage for Finnish and Chinese (China)
Merge pull request #1803 from luke-jr/md2k7_license

Apply MIT license to md2k7 art
Remove VC6 comment and pointless #ifdef'd benchmark code

We're in a wholly different world now, C++-compiler-wise.

Current std::stringstream implementations don't have the stated problem anymore,
and are just as fast as CDataStream.

The #ifdef'd block does not even compile anymore; CDataStream constructor changed,
and missing some std::. Also timing in whole seconds is also way too granular
to say anything sensible in such microbenchmarks. Just remove it,
it can always be found again in git history.
Merge pull request #1808 from laanwj/2012_09_serialize_deadcode

Remove VC6 comment and pointless #ifdef'd benchmark code
Import LevelDB 1.5, it will be used for the transaction database.
Leveldb Windows port by Edouard Alligand, adapted for MingW by me.
Disable libsnappy detection in LevelDB
Do not force -std=c++0x for MingW builds
Makefile integration of LevelDB
Check for canonical public keys and signatures

Disabled for now.
Compact serialization for variable-length integers

This commit introduces a new variable-length encoding for arbitrary integers.
They use a least-significant-digit-first base 128 encoding, where each byte
contains 7 bits of information, and one bit denoting whether another byte
follows. To avoid redundancy, however, all bytes except the first one
select a value in the range 1-128 instead of 0-127.

Thus, the byte sequence a[] where all but the last has bit 128 set, encodes
the number (a[0] & 0x7F) + sum(i=1..n, 128^i*((a[i] & 0x7F)+1)).
Compact serialization for variable-length integers: tests
Add CCoins: pruned list of transaction outputs

The CCoins class represents a pruned set of transaction outputs from
a given transaction. It only retains information about its height in
the block chain, whether it was a coinbase transaction, and its
unspent outputs (script + amount).

It has a custom serializer that has very low redundancy.
Compact serialization for scripts

Special serializers for script which detect common cases and encode
them much more efficiently. 3 special cases are defined:
* Pay to pubkey hash (encoded as 21 bytes)
* Pay to script hash (encoded as 21 bytes)
* Pay to pubkey starting with 0x02, 0x03 or 0x04 (encoded as 33 bytes)

Other scripts up to 121 bytes require 1 byte + script length. Above
that, scripts up to 16505 bytes require 2 bytes + script length.
Compact serialization for amounts

Special serializer/deserializer for amount values. It is optimized for
values which have few non-zero digits in decimal representation. Most
amounts currently in the txout set take only 1 or 2 bytes to
represent.
Compact serialization for amounts: tests

Test cases to verify the correctness of the custom amount serializer.
Add CTxUndo: transaction undo information

The CTxUndo class encapsulates data necessary to undo the effects of
a transaction on the txout set, namely the previous outputs consumed
by it (script + amount).
One file per block

Refactor of the block storage code, which now stores one file per block.
This will allow easier pruning, as blocks can be removed individually.