File IO performance improvements

Reduce read buffer size
Automatically adjust queue element size to match read buffer
Manually split work in parallel GZIP output
Use PriorityQueue for mergesort
Release lock when calling async ReadFile