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.
You could move this for loops to an extra method and just pass in the byte[] as these are identical otherwise.