Prevent building incorrect XML for multiple Savon::Operation#build calls when an attributes specified.

In some case when calling Savon::Operation#build its generate a wrong XML.

It happens only when we specify an attributes for body elements.

First call gives us a correct XML body, but second returns the same an XML but without any attributes.

May be it a problem in Envelop class, but caching works perfect.

Please, feel free to discuss before submit this PR because of may be i missed something.

Thanks.

P.S.

PR includes my merges from your master, no diffs. 

Everything in commit 02c9dcc