Adding support for Download builder

Closes #789. As discussed in dev mailing list and under issue #789.

I don't know if we use all builder subclasses as inner classes or external classes. Ideas?

After all comments, I can write some docs and improve tests for bytearray and inputstream.
This rule was a @csokol suggestion, and I think we can use from now, because we can capture messages and more. Using `@Test(expected)` we can't take full controll of exception thrown.