Splitting assembler into basic components (HMM, de Brujin graph, etc.)

Splits the HMM aligner and de Brujin graph related code out of the core of the assembler:

* *...avocado.algorithms.hmm:* package for the HMM based aligner which aligns reads to discovered haplotypes
* *...avocado.algorithms.debrujin:* package for the de Brujin graph construction code

This allows us to work on the different components of the assembler in parallel, and is part of our general cleanup for the assembler.