[jan] Throw InvalidArgumentException if passing incorrect arguments to constructors.
Don't use Horde_Stream_Existing.

The stream passed here is STDIN which cannot be rewinded.
Since we cast to string further down anyway, read the whole stream right from
sthe start.

In Horde 6 the whole API should be converted to use streams.