Refactor tests for compression codecs

Motivation:

Too many duplicated code of tests for different compression codecs.

Modifications:

- Added abstract classes `AbstractDecoderTest` and `AbstractEncoderTest` which contains common tests for any compression codec.
- Removed common tests which are implemented in `AbstractDecoderTest` and `AbstractEncoderTest` from current tests for compression codecs.
- Implemented abstract methods of `AbstractDecoderTest` and `AbstractEncoderTest` in current tests for compression codecs.
- Added additional checks for current tests.
- Renamed abstract class `IntegrationTest` to `AbstractIntegrationTest`.

Result:

Removed duplicated code of tests for compression codecs and simplified an addition of tests for new compression codecs.
@idelpivnitskiy You could use `@RunWith(Parameterized.class)` to run the same test with different allocators.