Reorganize marshal code.

- This appears to fix rspec/rspec-core#950.
- It's better, anyway, since it bypasses the unnecessary
  shifting/unshifting for this case.

I'd love if we had a failing spec for this but I don't really understand marshal and DRB to understand how the old logic was causing this bug.  This change seems logically identical but it fixes the problem :/