Resolves third bullet of #4691, and adds tests for it.  Fix #4691.
fix bug in test.
fixed another test.
auto merge of #9350 : pnkfelix/rust/fsk-issue-4691-catch-bad-fsu-during-compute-moves, r=nikomatsakis

Resolves third bullet of #4691: if the functional-struct-update (FSU) expression `{ a: b, ..s }` causes `s` to move and `s` has a destructor, then the expression is illegal.

r? @nikomatsakis