Catch invalid characters early in cyclic_find()

Catch invalid characters early in cyclic_find().  Sometimes I forget to `unhex()` the data, and it searches forever for eight bytes of irrelevant data.

Without this patch, the following will hang ~forever.

```python
not_in_alphabet = '61616161'
cyclic_find(not_in_alphabet)
```
I love functional programming as much as the next guy, but we tend to prefer list comprehensions over map in python, unless the map version is much more readable.

In this case, I would say that it is not more readable than:

    all(c in alphabet for c in subseq)

Or even this:

    for c in subseq:
        if c in alphabet:
            return -1