Correct definition of lvalues, fixes #10890

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
auto merge of #10929 : pcwalton/rust/deboxing, r=pcwalton

...eyword.

r? @brson
auto merge of #10982 : ezyang/rust/lvalue-def, r=pcwalton

Based off of Niko's proposed definition of lvalues.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
librustc: Implement a `Pod` kind for types that can be `memcpy`'d.

This will be used for the new `Cell`.
libstd: Implement the new `Cell`.
test: Add a test that POD types can be implicitly copied.
doc: Update the documentation to describe the `Pod` trait.