High-performance data structures for de novo assembly of genomes: cache oblivious generic programming