n-gram generation in Cython; ~1/3 faster

Doing the string join in Cython is tricky due to encoding issues in Py2...