Issue #13933: Remove transmute_mut from IO

The IO libraries casted self to mut so they can pass it to seek(SEEK_CUR, 0).
Fix this by introducing a private seek function that takes &self
  - of course one should be careful with it if he lacks an
    exclusive reference to self.
Issue #13933: Remove transmute_mut from Arc

directly use the internal pointer instead.
auto merge of #14487 : arielb1/rust/fix-13933, r=alexcrichton

Fix issue #13933 in a few files. A more complete fix would require core::raw::MutSlice.