Implemented a Bzip2Encoder

Motivation:

Bzip2Encoder provides sending data compressed in bzip2 format.

Modifications:

Added classes:
- Bzip2Encoder
- Bzip2BitWriter
- Bzip2BlockCompressor
- Bzip2DivSufSort
- Bzip2HuffmanAllocator
- Bzip2HuffmanStageEncoder
- Bzip2MTFAndRLE2StageEncoder
- Bzip2EncoderTest

Modified classes:
- Bzip2Constants (splited BLOCK_HEADER_MAGIC and END_OF_STREAM_MAGIC)
- Bzip2Decoder (use splited magic numbers)

Result:

Implemented new encoder which can compress outgoing data in bzip2 format.

@trustin @normanmaurer
Please, review. 
j doesn't depend on condensedInUse.length.
condensedInUse.length * 16 = size of blockValuesPresent[]
More info here: http://en.wikipedia.org/wiki/Bzip2
see File format