ENH: Add iter_regex and find_features

Fixes #612. Adds iter_regex to skbio._sequence.BiologicalSequence and
find_features to skbio._sequence.NucleotideSequence. Supported features are
currently purine_run and pyrimidine run, but more can be added by specifying
additional regular expressions.
Thanks @ebolyen, that was fantastic. SCFGs have been widely used within RNA, particularly secondary structure prediction (you may be interested in [consan](http://selab.janelia.org/software/consan/README)) and, AFAIK, many features of DNA/RNA/Protein can be described using CFGs. But, I do not know if all features can be, or if that is as efficient. For instance, HMMER uses HMMs to define coding features, and Infernal uses covariance models for defining non-coding RNAs for performance reasons, but possibly also due to the nature of the features they describe. I'm nearly certain that some features of interest, such as genes with alternative splicing or trans-regulatory effects cannot be represented with a regular grammar but I may be wrong in thought here. With respect to automatons though, we found in practice that Aho-Corasick was much faster than regex, while still allowing for multiple nodes and ambiguities. Regarding passing a specific function to produce a boolean vector for a simple FA, the above example is as verbose as:

```python
def pyrimidines_run(chars):
    return array([c in 'ctu' for c in chars])
```

But, I think we actually need to step back and decide two things:

* the level of complexity we want this method to support
* if the underlying data representation is or is not going to be a numpy array in the future

On the first point, if we want to be able to search an arbitrary sequence for a protein family, then we likely want to instead have support for HMMs and we probably should just wrap HMMER and save ourselves the investment to make it correct and fast. If we want to just be able to search for simple features, such as repeats (e.g., ARGARG...), then an automaton will be the most performant and verbose. If we want to just masks (e.g., all purine/pyrimidines), then boolean arrays will probably be the most performant due to SIMD. 

On the second point, if we use a numpy array, it makes boolean array ops and potentially other ops in `BiologicalSequence` very fast. It does not preclude using regex or other automatons, but we may need a translation layer. I really think that we should resolve the data representation first though.