Added a stream parser.

The only parser was originally for strings. By adding a stream
parser, anything that subclasses std::istream can be handled.