FiniteWriter trait + many important fixes

```FiniteWriter``` is now implemented for every ```Writer```, and used by the test app to terminate the stream properly.
BWT decoding is now fixed.
Ari ```ByteDecoder``` doesn't need to know the output size any more, enabled for the test app.