Allow decoding from an existing stream.

We're using Fressian in a messaging application and were having to read a stream of bytes only to turn around and have it converted back by Fressian. This patch separates the decoding and stream construction to avoid the unnecessary round trip.