Heavy rewrite to Viterbi code

1. Viterbi code has been rewritten to take advantage of numpy-style
vectorization wherever it is possible. This includes extensive use of
the max/argmax paradigm and some caching (of bigram transition weights).
The resulting performance gains seem to be about 50%.
2. Some small changes have been made to the greedy decoding method;
these are based on my revelation that you don't need to pad the tag
sequence with "start tags" as there are already "start words" in the
emission weight matrix.
3. Tag feature generation has been overhauled as well, and now includes
some memoization.
Implemented memory optimization

Earlier versions preserved the full trellis, though only one vector of
it is needed at a time. No more: now there is no more trellis than
needed at any point.
Removed references to "trellis"