Efficient Algorithms for Prokaryotic Whole Genome Assembly and Finishing