Fixed a bug that was causing the first reads to be missed
In the _parse_header() function a line would be read and then
checked to see if it was a header line.  Ultimately the first read
would be checked and found not to be a header, but then not put
back onto the stream, causing it to be missed when parse() was called.
This fix refactors the code so that _parse_header() no longer exists
and parse() will now read the header and alignments
Added in a new method so that the greengenes taxonomy can be returned as either a list or string
Refactored so that there are less temporary variables
Code now runs through to OTU table generation