make `sentence` work with `cout`
fix bug when sentence_iterator given eof iterator
add a random hmm

this just provides a way of generating a random hmm, given a
`sentence_iterator`. it looks like it takes under a second to generate a
full random hmm from the entire wsj data set. evaluating it though takes
much longer.

we also use fixed "rand()" value for, instead of generating a random
double, just always use 0.1. this is accomplished through the `TEST`
preprocessor macro, so if we ever want to conditionally compile based on
testing vs. our main app, we can just use:

```c
#if TEST
  // ...
#else
  // ...
#endif
```

i also changed the `test` target to always include debugging symbols. i
guess it's silly not to. though exporting `DEBUG=1` (or passing it in as
a command line argument) will still force debug symbols even in the main
app. note that of course we still have the gotcha that if we compile
from scratch w/o them, then `make test`, the *.o files won't have the
debug symbols, so if you're switching contexts into debugging, you might
have to run `make clean` first.

i also reverted the "Override rand() in test" commit 3b96e19d9e7680f8050561ded801fc32d964e2cb.