Bunch of changes

Highlights:
* Two breaking changes: dc947624fe896a043528146bce786420bebc4c45 and 6b85423e31a6203879981f7a88135a36378cbf7e
* Better test and benchmark
* Minor refactorings and optimizations

My grand plan is to decode blobs concurrently while preserving order of returned objects in public API. This will require more refactorings. I will try to make them smaller and more organized.