Writer requires a call to Writer::init to call content_length. This changes prepare to correctly call init. A consequences is that prepare can now throw unexpectedly for user-defined writers that can fail their initialization.